For unknown reasons linux psmouse alps driver sometimes receive totally invalid packet sequences on Dell Latitude laptops. According to ALPS HW engineers these invalid packets do not come from ALPS devices. So it looks like bug in BIOS and EC incorrectly split keyboard and touchpad PS/2 data when laptops are under heavy loads (big I/O together with powersave governor, running on battery). There are sequences of invalid packets (which are dropeed) and some sequences which look like valid. But these valid packets cause random trackstick button pressing, random cursor moving/jumping and in these condition it is not possible to use ALPS device (trackstick+touchpad). To prevent random button press and random cursor jumps immediately reset ALPS device after first invalid packet. This will cause that touchpad and trackstick will not respond for one or two seconds and it better then random cursor jumps. Signed-off-by: Pali Rohár <pali.rohar@xxxxxxxxx> Tested-by: Pali Rohár <pali.rohar@xxxxxxxxx> --- drivers/input/mouse/alps.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c index b1f44d4..d2b144f 100644 --- a/drivers/input/mouse/alps.c +++ b/drivers/input/mouse/alps.c @@ -2399,6 +2399,10 @@ int alps_init(struct psmouse *psmouse) /* We are having trouble resyncing ALPS touchpads so disable it for now */ psmouse->resync_time = 0; + /* Reset immediately after bad packet. When bad packet arrives then + cursor pointer jumps and trackstick buttons are randomly pressed. */ + psmouse->resetafter = 1; + return 0; init_fail: -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html