@@ -2568,7 +2568,7 @@ static int alps_update_dual_info_ss4_v2(unsigned
char otp[][4],
alps_exit_command_mode(psmouse);
ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE);
- if (reg_val == 0x0C || reg_val == 0x1D)
+ if (reg_val == 0x0C || reg_val == 0x1D ||
reg_val == 0x3D)
is_dual = true;
}
}
After that, the 3 buttons worked well, and the trackstick basically
worked. Basically work here means when I move trackstick, the cursor can
move, but the cursor moves very fast, it doesn't like the trackpad which
moves smoothly. If I run sudo evtest on other tracksticks or trackpads,
they basically report +1 or -1 for rel_x or rel_y, but on this alps
trackstick, it reports 10+ for rel_x or rel_y usually (evtest log is
pasted at the end of this email), If I did some hack in the code like
below, the trackstick can move smoothly too, but it is really a ugly
hack. Do you have any idea why it moves so fast? Is it has something to
do with the "PS2 interface Firmware setting" too?
@@ -1362,8 +1362,8 @@ static void alps_process_packet_ss4_v2(struct
psmouse *psmouse)
return;
}
- input_report_rel(dev2, REL_X, SS4_TS_X_V2(packet));
- input_report_rel(dev2, REL_Y, SS4_TS_Y_V2(packet));
+ input_report_rel(dev2, REL_X, SS4_TS_X_V2(packet)/16);
+ input_report_rel(dev2, REL_Y, SS4_TS_Y_V2(packet)/16);
input_report_abs(dev2, ABS_PRESSURE, SS4_TS_Z_V2(packet));