linux/drivers/input/mouse
Seth Forshee 824efd3741 Input: synaptics - adjust threshold for treating position values as negative
Commit c039450 (Input: synaptics - handle out of bounds values from the
hardware) caused any hardware reported values over 7167 to be treated as
a wrapped-around negative value. It turns out that some firmware uses
the value 8176 to indicate a finger near the edge of the touchpad whose
actual position cannot be determined. This value now gets treated as
negative, which can cause pointer jumps and broken edge scrolling on
these machines.

I only know of one touchpad which reports negative values, and this
hardware never reports any value lower than -8 (i.e. 8184). Moving the
threshold for treating a value as negative up to 8176 should work fine
then for any hardware we currently know about, and since we're dealing
with unspecified behavior it's probably the best we can do. The special
8176 value is also likely to result in sudden jumps in position, so
let's also clamp this to the maximum specified value for the axis.

BugLink: http://bugs.launchpad.net/bugs/1046512
https://bugzilla.kernel.org/show_bug.cgi?id=46371

Cc: stable@vger.kernel.org
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Tested-by: Alan Swanson <swanson@ukfsn.org>
Tested-by: Arteom <arutemus@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2012-09-28 10:33:57 -07:00
..
alps.c Input: ALPS - switch to using input_mt_report_finger_count 2012-05-10 22:32:33 -07:00
alps.h Input: ALPS - add semi-MT support for v4 protocol 2012-05-10 22:32:20 -07:00
amimouse.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
appletouch.c USB: input: appletouch: fix up compiler warning 2012-05-04 15:35:56 -07:00
atarimouse.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
bcm5974.c Merge branch 'next' into for-linus 2012-07-24 22:43:04 -07:00
elantech.c Input: elantech - v4 is a clickpad, with only one button 2012-04-10 00:40:35 -07:00
elantech.h Input: elantech - add resolution query support for v4 hardware 2011-11-20 22:28:34 -08:00
gpio_mouse.c Input: gpio_mouse - use linux/gpio.h rather than asm/gpio.h 2012-04-10 09:05:27 -07:00
hgpk.c Input: psmouse - use psmouse_[de]activate() from sentelic and hgpk drivers 2012-02-24 00:55:33 -08:00
hgpk.h Input: psmouse - switch to using dev_*() for messages 2011-10-10 18:28:16 -07:00
inport.c
Kconfig Input: Add Synaptics NavPoint (PXA27x SSP/SPI) driver 2012-05-10 22:12:39 -07:00
lifebook.c Input: psmouse - switch to using dev_*() for messages 2011-10-10 18:28:16 -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: convert obsolete strict_strtox to kstrtox 2011-11-09 21:23:26 -08:00
logips2pp.h
Makefile Input: Add Synaptics NavPoint (PXA27x SSP/SPI) driver 2012-05-10 22:12:39 -07:00
maplemouse.c
navpoint.c Input: Add Synaptics NavPoint (PXA27x SSP/SPI) driver 2012-05-10 22:12:39 -07:00
pc110pad.c Input: switch to input_abs_*() access functions 2010-08-02 20:29:56 -07:00
psmouse-base.c Merge commit 'v3.3-rc6' into next 2012-03-09 10:55:17 -08:00
psmouse.h Input: psmouse - allow drivers to use psmouse_{de,}activate 2012-02-24 00:55:28 -08:00
pxa930_trkball.c Input: mouse - use macro module_platform_driver() 2011-11-30 23:41:42 -08:00
rpcmouse.c
sentelic.c Input: sentelic - filter out erratic movement when lifting finger 2012-09-19 14:58:07 -07:00
sentelic.h Input: sentelic - report device's production serial number 2012-05-10 20:39:04 -07:00
sermouse.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
synaptics_i2c.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
synaptics_usb.c Input: synaptics_usb - Remove TrackPoint name trailing whitespace 2012-07-06 19:12:17 -07:00
synaptics.c Input: synaptics - adjust threshold for treating position values as negative 2012-09-28 10:33:57 -07:00
synaptics.h Input: synaptics - print firmware ID and board number at init 2012-07-07 18:20:08 -07:00
touchkit_ps2.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
touchkit_ps2.h
trackpoint.c Input: trackpoint - use psmouse_fmt() for messages 2012-04-10 00:40:39 -07:00
trackpoint.h
vsxxxaa.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00