linux/drivers/input
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
..
gameport Input: use module_pci_driver 2012-04-21 23:48:58 -07:00
joystick Merge branch 'next' into for-linus 2012-07-24 22:43:04 -07:00
keyboard Linux 3.6-rc5 2012-09-19 10:21:21 -07:00
misc Revert "input: ab8500-ponkey: Create AB8500 domain IRQ mapping" 2012-09-19 10:23:18 -07:00
mouse Input: synaptics - adjust threshold for treating position values as negative 2012-09-28 10:33:57 -07:00
serio Input: ambakmi - [un]prepare clocks when enabling amd disabling 2012-09-19 14:56:36 -07:00
tablet Input: wacom - add support for EMR on Cintiq 24HD touch 2012-08-21 22:14:43 -07:00
touchscreen Input: edt-ft5x06 - return -EFAULT on copy_to_user() error 2012-09-19 16:00:26 -07:00
apm-power.c
evbug.c
evdev.c Input: evdev - properly handle read/write with count 0 2012-05-02 00:23:58 -07:00
ff-core.c Input: force feedback - potential integer wrap in input_ff_create() 2011-10-12 21:13:11 -07:00
ff-memless.c Input: ff-memless - fix a couple min_t() casts 2012-07-07 18:20:12 -07:00
input-compat.c compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-compat.h compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-mt.c Input: MT - fix null pointer warning 2012-06-04 16:33:34 +02:00
input-polldev.c Merge commit 'v3.2-rc3' into next 2011-11-29 01:51:07 -08:00
input.c Input: Use accessor for MT values 2012-02-02 14:42:20 +01:00
joydev.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
Kconfig Input: matrix-keymap - uninline and prepare for device tree support 2012-05-10 22:38:47 -07:00
Makefile Input: matrix-keymap - uninline and prepare for device tree support 2012-05-10 22:38:47 -07:00
matrix-keymap.c Input: matrix-keymap - fix building keymaps 2012-05-24 01:12:20 -07:00
mousedev.c Input: properly assign return value of clamp() macro. 2011-05-25 09:24:58 -07:00
sparse-keymap.c drivers/input: Add module.h to modular drivers implicitly using it 2011-10-31 19:31:16 -04:00