linux/drivers/input/mouse
Pali Rohár fe888a904a Input: alps - ignore bad data on Dell Latitudes E6440 and E7440
commit a7ef82aee9 upstream.

Sometimes on Dell Latitude laptops psmouse/alps driver receive invalid ALPS
protocol V3 packets with bit7 set in last byte. More often it can be
reproduced on Dell Latitude E6440 or E7440 with closed lid and pushing
cover above touchpad.

If bit7 in last packet byte is set then it is not valid ALPS packet. I was
told that ALPS devices never send these packets. It is not know yet who
send those packets, it could be Dell EC, bug in BIOS and also bug in
touchpad firmware...

With this patch alps driver does not process those invalid packets, but
instead of reporting PSMOUSE_BAD_DATA, getting into out of sync state,
getting back in sync with the next byte and spam dmesg we return
PSMOUSE_FULL_PACKET. If driver is truly out of sync we'll fail the checks
on the next byte and report PSMOUSE_BAD_DATA then.

Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Tested-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-11-21 09:23:03 -08:00
..
Kconfig Convert selectors of GENERIC_GPIO to GPIOLIB 2013-04-16 18:47:14 +09:00
Makefile Input: add driver for Cypress APA I2C Trackpad 2013-01-17 00:28:10 -08:00
alps.c Input: alps - ignore bad data on Dell Latitudes E6440 and E7440 2014-11-21 09:23:03 -08:00
alps.h Input: ALPS - add support for "Dolphin" devices 2013-12-26 15:44:39 -08:00
amimouse.c Input: amimouse - remove redundant platform_set_drvdata() 2013-05-05 20:15:14 -07:00
appletouch.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08: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 detection of touchpad on ASUS s301l 2014-10-05 14:52:19 -07:00
elantech.h Input: elantech - fix touchpad initialization on Gigabyte U2442 2014-06-07 10:28:20 -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
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
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
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: add support for Cypress PS/2 Trackpads 2013-01-17 00:27:34 -08:00
psmouse.h Input: add support for Cypress PS/2 Trackpads 2013-01-17 00:27:34 -08: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.c Input: synaptics - add min/max quirk for Lenovo T440s 2014-11-21 09:23:03 -08:00
synaptics.h Input: synaptics - add support for ForcePads 2014-10-05 14:52:19 -07:00
synaptics_i2c.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
synaptics_usb.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08: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: trackpoint - Optimize trackpoint init to use power-on reset 2013-04-19 09:05:44 -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: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00