linux_dsm_epyc7002/drivers/input/mouse
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
..
alps.c Input: alps - ignore potential bare packets when device is out of sync 2014-11-08 23:51:30 -08:00
alps.h Input: alps - Rushmore and v7 resolution support 2014-07-30 22:53:20 -07:00
amimouse.c Input: amimouse - remove redundant platform_set_drvdata() 2013-05-05 20:15:14 -07:00
appletouch.c Input: appletouch - fix jumps when additional fingers are detected 2014-03-30 23:44:17 -07:00
atarimouse.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
bcm5974.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
cyapa.c Input: cyapa - add support for smbus protocol 2013-02-13 20:21:17 -08:00
cypress_ps2.c Input: cypress_ps2 - don't report as a button pads 2014-03-26 13:33:58 -07:00
cypress_ps2.h Input: add support for Cypress PS/2 Trackpads 2013-01-17 00:27:34 -08:00
elantech.c Input: elantech - fix crc_enabled for Fujitsu H730 2014-11-08 00:26:45 -08:00
elantech.h Input: elantech - add support for trackpoint found on some v3 models 2014-08-26 15:17:41 -07:00
focaltech.c Input: psmouse - add support for detecting FocalTech PS/2 touchpads 2014-09-15 14:30:46 -07:00
focaltech.h Input: psmouse - add support for detecting FocalTech PS/2 touchpads 2014-09-15 14:30:46 -07:00
gpio_mouse.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
hgpk.c Input: hgpk - use %*ph to dump small buffer 2012-09-12 21:57:13 -07:00
hgpk.h Input: psmouse - switch to using dev_*() for messages 2011-10-10 18:28:16 -07:00
inport.c Input: remove CVS keywords 2008-05-20 12:17:39 -04:00
Kconfig Merge branch 'next' into for-linus 2014-06-07 23:24:07 -07:00
lifebook.c Input: lifebook - fix incorrect placement of __initconst 2013-08-12 22:32:38 -07:00
lifebook.h Input: psmouse - do not carry DMI data around 2009-12-03 23:25:36 -08:00
logibm.c Input: remove CVS keywords 2008-05-20 12:17:39 -04:00
logips2pp.c Input: logips2pp - fix spelling s/reciver/receiver/ 2014-01-12 11:41:38 -08:00
logips2pp.h Input: psmouse - use boolean type 2009-09-10 22:11:38 -07:00
Makefile Input: psmouse - add support for detecting FocalTech PS/2 touchpads 2014-09-15 14:30:46 -07:00
maplemouse.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
navpoint.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
pc110pad.c Input: switch to input_abs_*() access functions 2010-08-02 20:29:56 -07:00
psmouse-base.c Input: psmouse - remove unneeded check in psmouse_reconnect() 2014-10-28 11:42:56 -07:00
psmouse.h Input: psmouse - add psmouse_matches_pnp_id helper function 2014-09-12 17:30:44 -07:00
pxa930_trkball.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
rpcmouse.c input: rpcmouse: use __iomem pointers for MMIO 2012-09-19 15:37:13 +02:00
sentelic.c Input: sentelic - only report position of first finger as ST coordinates 2012-12-24 09:51:21 -08:00
sentelic.h Input: sentelic - report device's production serial number 2012-05-10 20:39:04 -07:00
sermouse.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
synaptics_i2c.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
synaptics_usb.c Input: add missing POINTER / DIRECT properties to a bunch of drivers 2014-09-08 14:58:12 -07:00
synaptics.c Input: synaptics - add min/max quirk for Lenovo T440s 2014-11-06 10:05:52 -08:00
synaptics.h Input: synaptics - gate forcepad support by DMI check 2014-10-11 11:34:42 -07:00
touchkit_ps2.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
touchkit_ps2.h Input: psmouse - use boolean type 2009-09-10 22:11:38 -07:00
trackpoint.c Input: add missing POINTER / DIRECT properties to a bunch of drivers 2014-09-08 14:58:12 -07:00
trackpoint.h Input: trackpoint - Optimize trackpoint init to use power-on reset 2013-04-19 09:05:44 -07:00
vsxxxaa.c Input: vsxxxaa - fix code dropping bytes from queue 2014-10-28 10:33:48 -07:00