kernel_optimize_test/drivers/input/mouse
Daniel Kurtz 48064bdcd6 Input: synaptics - fix 1->3 contact transition reporting
Investigating the following gesture highlighted two slight implementation
errors with choosing which slots to report in which slot when multiple
contacts are present:

Action                 SGM  AGM (MTB slot:Contact)
1. Touch contact 0    (0:0)
2. Touch contact 1    (0:0, 1:1)
3. Lift  contact 0    (1:1)
4. Touch contacts 2,3 (0:2, 1:3)

In step 4, slot 1 was not being cleared first, which means the same
tracking ID was being used for reporting both the old contact 1 and the
new contact 3.  This could result in "drumroll", where the old contact 1
would appear to suddenly jump to new finger 3 position.

Similarly, if contacts 2 & 3 are not detected at the same sample, step 4
is split into two:

Action                SGM  AGM  (MTB slot:contact)
1. Touch contact 0   (0:0)
2. Touch contact 1   (0:0, 1:1)
3. Lift  contact 0   (1:1)
4. Touch contact 2   (0:2, 1:1)
5. Touch contact 3   (0:2, 1:3)

In this case, there was also a bug.  In step 4, when contact 1 moves from
SGM to AGM and contact 2 is first reported in SGM, slot 0 was actually
empty.  So slot 0 can be used to report the new SGM (contact 0),
immediately.  Since it was empty, contact 2 in slot 0 will get a new
tracking ID.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2013-02-13 20:21:12 -08:00
..
alps.c Input: ALPS - print small buffers via %*ph 2012-10-30 00:47:04 -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 HID: Add support for the MacBook Pro 10,2 keyboard / touchpad 2012-10-31 10:42:33 +01:00
cyapa.c Input: add driver for Cypress APA I2C Trackpad 2013-01-17 00:28:10 -08:00
cypress_ps2.c Input: add support for Cypress PS/2 Trackpads 2013-01-17 00:27:34 -08:00
cypress_ps2.h Input: add support for Cypress PS/2 Trackpads 2013-01-17 00:27:34 -08:00
elantech.c Input: MT - Add flags to input_mt_init_slots() 2012-09-19 19:50:18 +02:00
elantech.h
gpio_mouse.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
hgpk.c Input: hgpk - use %*ph to dump small buffer 2012-09-12 21:57:13 -07:00
hgpk.h
inport.c
Kconfig Input: add driver for Cypress APA I2C Trackpad 2013-01-17 00:28:10 -08:00
lifebook.c
lifebook.h
logibm.c
logips2pp.c
logips2pp.h
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: remove use of __devexit 2012-11-24 00:05:38 -08:00
pc110pad.c
psmouse-base.c Input: add support for Cypress PS/2 Trackpads 2013-01-17 00:27:34 -08:00
psmouse.h Input: add support for Cypress PS/2 Trackpads 2013-01-17 00:27:34 -08:00
pxa930_trkball.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
rpcmouse.c input: rpcmouse: use __iomem pointers for MMIO 2012-09-19 15:37:13 +02:00
sentelic.c Merge branches 'from-henrik', 'hidraw', 'logitech', 'picolcd', 'ps3', 'uclogic', 'wacom' and 'wiimote' into for-linus 2012-10-01 14:36:26 +02: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: remove use of __devexit 2012-11-24 00:05:38 -08:00
synaptics_usb.c Input: synaptics_usb - Remove TrackPoint name trailing whitespace 2012-07-06 19:12:17 -07:00
synaptics.c Input: synaptics - fix 1->3 contact transition reporting 2013-02-13 20:21:12 -08:00
synaptics.h Input: synaptics - print firmware ID and board number at init 2012-07-07 18:20:08 -07:00
touchkit_ps2.c
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