linux/drivers/input/mouse
Henrik Rydberg fec6e5252b Input: synaptics - add multi-finger and semi-mt support
The Synaptics 2.7 series of touchpads support a mode for reporting two
sets of X/Y/Pressure data (advanced gesture mode). By default, these
devices report only single finger data, depriving userspace of the
nowadays ubiquitous two-finger scroll gesture.

Enabling advanced gesture mode also enables the multi-finger report,
although the device does not claim that capability. Up to three
fingers can be reported this way.

While two or three fingers are touching, the normal packet is
prepended by a reduced finger packet of lower resolution. From the two
packets (which do not represent the actual fingers), the bounding
rectangle of the individual contacts can be extracted.  This
information is sufficient to perform scaling gestures and a limited
form of rotation gesture. The behavior has been coined semi-mt
capability, and is signaled to userspace via the INPUT_PROP_SEMI_MT
device property.

Work to decode the advanced gesture packet: Takashi Iwai.
Cleanup and testing of the original patch: Chase Douglas.
Minor cleanup and testing: Chris Bagwell.
Finalization and semi-mt support: Henrik Rydberg.

Reported-by: Tobyn Bertram
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
2010-12-21 18:11:25 +01:00
..
alps.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-05-05 07:53:18 -07:00
alps.h Input: ALPS - add interleaved protocol support (Dell E6x00 series) 2009-12-15 22:15:25 -08:00
amimouse.c m68k: amiga - Mouse platform device conversion 2010-05-26 19:51:09 +02:00
appletouch.c Input: appletouch - remove extra KERN_DEBUG use from dprintk 2010-10-31 07:16:00 -07:00
atarimouse.c Input: atamouse - various cleanups 2008-06-30 09:36:46 -04:00
bcm5974.c Input: bcm5974 - adjust major/minor to scale 2010-08-31 18:00:02 -07:00
elantech.c Input: return -ENOMEM in select drivers when memory allocation fails 2010-10-13 07:49:23 -07:00
elantech.h Input: elantech - discard the first 2 positions on some firmwares 2010-08-05 23:52:29 -07:00
gpio_mouse.c Input: gpio_mouse - use standard driver registration method 2009-07-07 22:47:14 -07:00
hgpk.c Input: psmouse - small formatting changes to better follow coding style 2010-05-19 11:31:51 -07:00
hgpk.h Input: psmouse - use boolean type 2009-09-10 22:11:38 -07:00
inport.c Input: remove CVS keywords 2008-05-20 12:17:39 -04:00
Kconfig Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
lifebook.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
lifebook.h Input: psmouse - do not carry DMI data around 2009-12-03 23:25:36 -08:00
logibm.c Input: remove CVS keywords 2008-05-20 12:17:39 -04:00
logips2pp.c Input: psmouse - small formatting changes to better follow coding style 2010-05-19 11:31:51 -07:00
logips2pp.h Input: psmouse - use boolean type 2009-09-10 22:11:38 -07:00
Makefile Input: add new driver for Sentelic Finger Sensing Pad 2009-08-19 21:46:09 -07:00
maplemouse.c maple: input: fix up maple mouse driver 2009-04-27 09:22:31 +09:00
pc110pad.c Input: switch to input_abs_*() access functions 2010-08-02 20:29:56 -07:00
psmouse-base.c Input: serio - support multiple child devices per single parent 2010-10-13 07:49:28 -07:00
psmouse.h Input: psmouse - ignore parity error for basic protocols 2010-04-19 00:50:42 -07:00
pxa930_trkball.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rpcmouse.c [ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.h 2009-03-25 10:21:35 +00:00
sentelic.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sentelic.h Input: psmouse - use boolean type 2009-09-10 22:11:38 -07:00
sermouse.c Input: remove CVS keywords 2008-05-20 12:17:39 -04:00
synaptics_i2c.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
synaptics.c Input: synaptics - add multi-finger and semi-mt support 2010-12-21 18:11:25 +01:00
synaptics.h Input: synaptics - add multi-finger and semi-mt support 2010-12-21 18:11:25 +01: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: return -ENOMEM in select drivers when memory allocation fails 2010-10-13 07:49:23 -07:00
trackpoint.h Input: psmouse - use boolean type 2009-09-10 22:11:38 -07:00
vsxxxaa.c Input: vsxxxaa - change formatting style to match the rest of the kernel 2009-10-13 23:58:27 -07:00