linux/drivers/input/mouse
Masaki Ota ac72f0080c Input: ALPS - fix TrackStick detection on Thinkpad L570 and Latitude 7370
commit 567b9b549c upstream.

The primary interface for the touchpad device in Thinkpad L570 is SMBus,
so ALPS overlooked PS2 interface Firmware setting of TrackStick, and
shipped with TrackStick otp bit is disabled.

The address 0xD7 contains device number information, so we can identify
the device by checking this value, but to access it we need to enable
Command mode, and then re-enable the device. Devices shipped in Thinkpad
L570 report either 0x0C or 0x1D as device numbers, if we see them we assume
that the devices are DualPoints.

The same issue exists on Dell Latitude 7370.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=196929
Fixes: 646580f793 ("Input: ALPS - fix multi-touch decoding on SS4 plus touchpads")
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Tested-by: Aaron Ma <aaron.ma@canonical.com>
Tested-by: Jonathan Liu <net147@gmail.com>
Tested-by: Jaak Ristioja <jaak@ristioja.ee>
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2018-04-08 14:26:32 +02:00
..
alps.c Input: ALPS - fix TrackStick detection on Thinkpad L570 and Latitude 7370 2018-04-08 14:26:32 +02:00
alps.h Input: ALPS - fix multi-touch decoding on SS4 plus touchpads 2018-01-23 19:58:15 +01:00
amimouse.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
appletouch.c Input: appletouch - constify usb_device_id 2017-08-07 20:10:18 -07:00
atarimouse.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
bcm5974.c Input: mouse - use local variables consistently 2017-01-21 23:52:22 -08:00
byd.c Input: byd - make array seq static, reduces object code size 2017-08-31 18:09:48 -07:00
byd.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cyapa.c Input: mouse - use local variables consistently 2017-01-21 23:52:22 -08:00
cyapa.h Input: cyapa - fix for losing events during device power transitions 2016-03-04 11:32:13 -08:00
cyapa_gen3.c Input: cyapa - use msleep() for long delay 2017-01-15 15:40:23 -08:00
cyapa_gen5.c Input: cyapa - fix for losing events during device power transitions 2016-03-04 11:32:13 -08:00
cyapa_gen6.c Input: cyapa - fix for losing events during device power transitions 2016-03-04 11:32:13 -08:00
cypress_ps2.c Input: mouse - drop unnecessary calls to input_set_drvdata 2017-01-22 17:22:28 -08:00
cypress_ps2.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
elan_i2c.h Input: elan_i2c - support touchpads with two physical buttons 2017-08-18 17:07:02 -07:00
elan_i2c_core.c Input: elan_i2c - add ELAN060C to the ACPI table 2017-11-07 17:44:40 -08:00
elan_i2c_i2c.c Input: elan_i2c - extend Flash-Write delay 2017-09-22 10:07:38 -07:00
elan_i2c_smbus.c Input: elan_i2c - support touchpads with two physical buttons 2017-08-18 17:07:02 -07:00
elantech.c Input: elantech - add new icbody type 15 2018-01-10 09:31:21 +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: psmouse - cleanup Focaltech code 2016-10-24 17:19:25 -07:00
focaltech.h Input: psmouse - rearrange Focaltech init code 2015-12-17 15:23:54 -08:00
gpio_mouse.c input: mouse: drop owner assignment from platform_drivers 2014-10-20 16:20:40 +02:00
hgpk.c Input: mouse - use local variables consistently 2017-01-21 23:52:22 -08:00
hgpk.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
inport.c Annotate hardware config module parameters in drivers/input/ 2017-04-20 12:02:32 +01:00
Kconfig Input: synaptics - add support for Intertouch devices 2017-03-25 10:37:30 -07:00
lifebook.c Input: psmouse - use same format for secondary devices as for primary 2016-06-18 17:39:23 -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 Annotate hardware config module parameters in drivers/input/ 2017-04-20 12:02:32 +01:00
logips2pp.c Input: mouse - use local variables consistently 2017-01-21 23:52:22 -08:00
logips2pp.h Input: psmouse - rename ps2pp_init() to ps2pp_detect() 2015-12-17 15:24:37 -08:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
maplemouse.c Input: mouse - drop unnecessary calls to input_set_drvdata 2017-01-22 17:22:28 -08:00
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 Input: switch to input_abs_*() access functions 2010-08-02 20:29:56 -07:00
psmouse-base.c Input: psmouse - constify attribute_group structures 2017-07-12 14:19:29 -07:00
psmouse-smbus.c Input: psmouse - use i2c_client_type to locate i2c clients 2017-04-03 12:03:55 -07:00
psmouse.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +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 - 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 - disable kernel tracking on SMBus devices 2017-10-09 20:52:39 -07:00
synaptics.h Input: synaptics - use u8 instead of unsigned char 2017-04-03 16:23:58 -07:00
synaptics_i2c.c Input: synaptics_i2c - add OF device ID table 2017-03-23 14:46:32 -07:00
synaptics_usb.c Input: synaptics_usb - constify usb_device_id 2017-08-07 20:10:19 -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: trackpoint - only expose supported controls for Elan, ALPS and NXP 2018-01-31 14:03:42 +01:00
trackpoint.h Input: trackpoint - only expose supported controls for Elan, ALPS and NXP 2018-01-31 14:03:42 +01:00
vmmouse.c x86/virt: Add enum for hypervisors to replace x86_hyper 2017-12-25 14:26:20 +01: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