linux/drivers/input
Pali Rohár 4ab8f7f320 Input: alps - ignore potential bare packets when device is out of sync
5th and 6th byte of ALPS trackstick V3 protocol match condition for first
byte of PS/2 3 bytes packet. When driver enters out of sync state and ALPS
trackstick is sending data then driver match 5th, 6th and next 1st bytes as
PS/2.

It basically means if user is using trackstick when driver is in out of
sync state driver will never resync. Processing these bytes as 3 bytes PS/2
data cause total mess (random cursor movements, random clicks) and make
trackstick unusable until psmouse driver decide to do full device reset.

Lot of users reported problems with ALPS devices on Dell Latitude E6440,
E6540 and E7440 laptops. ALPS device or Dell EC for unknown reason send
some invalid ALPS PS/2 bytes which cause driver out of sync. It looks like
that i8042 and psmouse/alps driver always receive group of 6 bytes packets
so there are no missing bytes and no bytes were inserted between valid
ones.

This patch does not fix root of problem with ALPS devices found in Dell
Latitude laptops but it does not allow to process some (invalid)
subsequence of 6 bytes ALPS packets as 3 bytes PS/2 when driver is out of
sync.

So with this patch trackstick input device does not report bogus data when
also driver is out of sync, so trackstick should be usable on those
machines.

Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Tested-by: Pali Rohár <pali.rohar@gmail.com>
Cc: stable@vger.kernel.org
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2014-11-08 23:51:30 -08:00
..
gameport Input: joystick - use ktime for measuring timing 2014-09-11 23:41:18 -07:00
joystick Input: xpad - add Thrustmaster as Xbox 360 controller vendor 2014-10-16 14:05:40 -07:00
keyboard Input: opencores-kbd - fix error handling 2014-10-28 10:32:59 -07:00
misc Input: twl4030-pwrbutton - ensure a wakeup event is recorded. 2014-11-08 00:26:44 -08:00
mouse Input: alps - ignore potential bare packets when device is out of sync 2014-11-08 23:51:30 -08:00
serio Revert "Input: i8042 - disable active multiplexing by default" 2014-10-31 09:35:53 -07:00
tablet Merge branch 'wacom' into next 2014-08-06 23:31:48 -07:00
touchscreen Input: wm97xx - adapt parameters to tosa touchscreen. 2014-10-24 17:27:31 -07:00
apm-power.c
evbug.c
evdev.c Input: evdev - fix EVIOCG{type} ioctl 2014-10-07 09:55:01 -07:00
ff-core.c
ff-memless.c
input-compat.c
input-compat.h
input-mt.c Input: fix used slots detection breakage 2014-08-25 14:59:48 -07:00
input-polldev.c Input: implement managed polled input devices 2014-05-14 16:40:04 -07:00
input.c Input: avoid negative input device numbers 2014-10-09 15:27:24 -07:00
joydev.c Input: fix use-after-free introduced with dynamic minor changes 2012-10-22 08:50:37 +03:00
Kconfig Input: mousedev - allow disabling even without CONFIG_EXPERT 2013-10-31 08:46:07 -07:00
Makefile
matrix-keymap.c input: Export matrix_keypad_parse_of_params() 2013-04-19 00:31:13 +02:00
mousedev.c Input: mousedev - fix race when creating mixed device 2014-03-29 14:44:23 -07:00
sparse-keymap.c treewide: Fix typo in Documentation/DocBook 2014-02-19 14:58:17 +01:00