linux/drivers/input
Daniel Kurtz a6ca40c11e Input: synaptics - decode AGM packet types
A Synaptics image sensor tracks 5 fingers, but can only report 2.

The algorithm for choosing which 2 fingers to report and in which packet:
  Touchpad maintains 5 slots, numbered 0 to 4
  Initially all slots are empty
  As new fingers are detected, assign them to the lowest available slots
  The touchpad always reports:
    SGM: lowest numbered non-empty slot
    AGM: highest numbered non-empty slot, if there is one

In addition, these touchpads have a special AGM packet type which reports
the number of fingers currently being tracked, and which finger is in
each of the two slots.  Unfortunately, these "TYPE=2" packets are only used
when more than 3 fingers are being tracked.  When less than 4 fingers
are present, the 'w' value must be used to track how many fingers are
present, and knowing which fingers are being reported is much more
difficult, if not impossible.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
Acked-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2011-08-23 23:08:16 -07:00
..
gameport Merge branch 'next' into for-linus 2011-03-18 23:38:50 -07:00
joystick Input: xpad - enable rumble support for XBox360 Wireless Controllers 2011-07-04 19:31:06 -07:00
keyboard Input: tegra-kbc - enable key autorepeat 2011-07-25 01:26:17 -07:00
misc Input: add driver for Bosch Sensortec's BMA150 accelerometer 2011-08-09 01:33:04 -07:00
mouse Input: synaptics - decode AGM packet types 2011-08-23 23:08:16 -07:00
serio Input: hp_sdc - staticize hp_sdc_kicker() 2011-07-18 17:10:36 -07:00
tablet Input: aiptek - remove double define 2011-07-10 16:08:23 -07:00
touchscreen Input: wacom_w8001 - simplify w8001_remove 2011-08-23 23:07:51 -07:00
Kconfig Input: xen-kbdfront - move to drivers/input/misc 2011-03-16 23:26:01 -07:00
Makefile Input: xen-kbdfront - move to drivers/input/misc 2011-03-16 23:26:01 -07:00
apm-power.c Input: use pr_fmt and pr_<level> 2010-11-30 23:10:26 -08:00
evbug.c Input: use pr_fmt and pr_<level> 2010-11-30 23:10:26 -08:00
evdev.c Input: evdev - try to wake up readers only if we have full packet 2011-06-18 02:54:02 -07:00
ff-core.c Input: use pr_fmt and pr_<level> 2010-11-30 23:10:26 -08:00
ff-memless.c Input: use pr_fmt and pr_<level> 2010-11-30 23:10:26 -08:00
fixp-arith.h changed email 2007-10-20 00:47:32 +02:00
input-compat.c Input: refactor evdev 32bit compat to be shareable with uinput 2008-10-27 22:03:42 -04:00
input-compat.h arch/tile: finish enabling support for TILE-Gx 64-bit chip 2011-05-12 15:52:12 -04:00
input-mt.c input: mt: Move tracking and pointer emulation to input-mt 2010-12-16 10:41:38 +01:00
input-polldev.c Input: polldev - immediately poll device upon opening 2011-08-09 01:32:45 -07:00
input.c Input: properly assign return value of clamp() macro. 2011-05-25 09:24:58 -07:00
joydev.c Input: remove useless synchronize_rcu() calls 2011-05-12 08:28:57 -07:00
mousedev.c Input: properly assign return value of clamp() macro. 2011-05-25 09:24:58 -07:00
sparse-keymap.c Input: sparse-keymap - report KEY_UNKNOWN for unknown scan codes 2011-03-28 23:34:52 -07:00