linux/drivers/input/mouse
Aaron Ma 4a6e9e328c Input: trackpoint - force 3 buttons if 0 button is reported
commit f5d07b9e98 upstream.

Lenovo introduced trackpoint compatible sticks with minimum PS/2 commands.
They supposed to reply with 0x02, 0x03, or 0x04 in response to the
"Read Extended ID" command, so we would know not to try certain extended
commands. Unfortunately even some trackpoints reporting the original IBM
version (0x01 firmware 0x0e) now respond with incorrect data to the "Get
Extended Buttons" command:

 thinkpad_acpi: ThinkPad BIOS R0DET87W (1.87 ), EC unknown
 thinkpad_acpi: Lenovo ThinkPad E470, model 20H1004SGE

 psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 0/0

Since there are no trackpoints without buttons, let's assume the trackpoint
has 3 buttons when we get 0 response to the extended buttons query.

Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=196253
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2018-03-03 15:52:27 +00:00
..
alps.c Input: alps - ignore bad data on Dell Latitudes E6440 and E7440 2014-11-27 11:21:51 +00: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: 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 - add new icbody type 15 2018-03-03 15:51:33 +00:00
elantech.h Input: elantech - fix absolute mode setting on some ASUS laptops 2015-05-05 11:09:43 +01: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: add driver for Cypress APA I2C Trackpad 2013-01-17 00:28:10 -08: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 - add psmouse_matches_pnp_id helper function 2015-03-30 11:11:08 +01:00
psmouse.h Input: psmouse - add psmouse_matches_pnp_id helper function 2015-03-30 11:11:08 +01: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 - handle spurious release of trackstick buttons, again 2016-05-01 00:06:01 +02:00
synaptics.h Input: synaptics - gate forcepad support by DMI check 2014-11-17 14:11:46 +00: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 - force 3 buttons if 0 button is reported 2018-03-03 15:52:27 +00:00
trackpoint.h Input: trackpoint - add new trackpoint firmware ID 2017-11-11 13:33:23 +00:00
vsxxxaa.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00