linux-uconsole/drivers/input/mouse
Aaron Ma 9af7500349 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-01-31 12:06:11 +01:00
..
alps.c Input: alps - only the Dell Latitude D420/430/620/630 have separate stick button bits 2015-10-26 17:23:48 -07:00
alps.h Input: alps - use more accurate coordinates for first touch in semi-mt mode 2015-05-20 14:45:44 -07:00
amimouse.c input: mouse: drop owner assignment from platform_drivers 2014-10-20 16:20:40 +02:00
appletouch.c Input: appletouch - fix jumps when additional fingers are detected 2014-03-30 23:44:17 -07:00
atarimouse.c
bcm5974.c Input: bcm5974 - add support for the 2015 Macbook Pro 2015-07-27 15:43:47 -07:00
cyapa.c Input: cyapa - introduce device tree binding 2015-07-30 11:33:59 -07:00
cyapa.h Input: cyapa - add regulator vcc support 2015-07-30 11:33:59 -07:00
cyapa_gen3.c Input: cyapa - fully support runtime suspend power management 2015-07-23 17:34:05 -07:00
cyapa_gen5.c Input: cyapa - do not try to enable proximity reporting on older devices 2015-07-30 11:34:00 -07:00
cyapa_gen6.c Input: cyapa - fix the copy paste error on electrodes_rx value 2015-10-13 23:29:52 -07:00
cypress_ps2.c Input: psmouse - use IS_ENABLED instead of homegrown code 2015-02-15 16:08:35 -08:00
cypress_ps2.h Input: psmouse - use IS_ENABLED instead of homegrown code 2015-02-15 16:08:35 -08:00
elan_i2c.h Input: elan_i2c - expand maximum product_id form 0xFF to 0xFFFF 2015-09-21 09:32:40 -07:00
elan_i2c_core.c Input: elan_i2c - add ELAN060C to the ACPI table 2017-11-15 17:13:13 +01:00
elan_i2c_i2c.c Input: elan_i2c - expand maximum product_id form 0xFF to 0xFFFF 2015-09-21 09:32:40 -07:00
elan_i2c_smbus.c Input: elan_i2c - expand maximum product_id form 0xFF to 0xFFFF 2015-09-21 09:32:40 -07:00
elantech.c Input: elantech - add new icbody type 15 2018-01-10 09:27:12 +01:00
elantech.h Input: elantech - add special check for fw_version 0x470f01 touchpad 2015-08-07 14:54:15 -07:00
focaltech.c Input: focaltech - report finger width to userspace 2015-06-02 10:46:10 -07:00
focaltech.h Input: psmouse - use IS_ENABLED instead of homegrown code 2015-02-15 16:08:35 -08:00
gpio_mouse.c input: mouse: drop owner assignment from platform_drivers 2014-10-20 16:20:40 +02:00
hgpk.c
hgpk.h
inport.c
Kconfig Input: Allow compile test of GPIO consumers if !GPIOLIB 2015-08-04 11:45:45 -07:00
lifebook.c Input: lifebook - fix tabbing issue 2015-03-20 09:45:51 -07:00
lifebook.h Input: lifebook - use "static inline" instead of "inline" in lifebook.h 2014-11-09 22:59:25 -08:00
logibm.c
logips2pp.c Input: logips2pp - fix spelling s/reciver/receiver/ 2014-01-12 11:41:38 -08:00
logips2pp.h
Makefile Input: cyapa - add gen6 device module support 2015-07-23 17:34:04 -07:00
maplemouse.c
navpoint.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-12-17 10:06:02 -08:00
pc110pad.c
psmouse-base.c Input: psmouse - add small delay for IBM trackpoint pass-through mode 2015-08-26 13:14:25 -07:00
psmouse.h Input: add vmmouse driver 2015-04-14 14:29:03 -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
sentelic.c Input: sentelic - silence some underflow warnings 2015-08-21 09:32:59 -07:00
sentelic.h Input: sentelic - use "static inline" instead of "inline" 2015-05-22 10:59:54 -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-04-12 09:09:04 -07:00
synaptics.h Linux 4.0-rc5 2015-03-23 09:18:27 -07:00
synaptics_i2c.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
synaptics_usb.c Input: add missing POINTER / DIRECT properties to a bunch of drivers 2014-09-08 14:58:12 -07:00
touchkit_ps2.c
touchkit_ps2.h
trackpoint.c Input: trackpoint - force 3 buttons if 0 button is reported 2018-01-31 12:06:11 +01:00
trackpoint.h Input: trackpoint - add new trackpoint firmware ID 2017-08-30 10:19:22 +02:00
vmmouse.c Input: vmmouse - remove port reservation 2016-08-10 11:49:26 +02:00
vmmouse.h Input: add vmmouse driver 2015-04-14 14:29:03 -07:00
vsxxxaa.c Input: vsxxxaa - fix code dropping bytes from queue 2014-10-28 10:33:48 -07:00