alistair23-linux/drivers/input/mouse
Daniel Drake 7968a5dd49 Input: synaptics - add support for Relative mode
Currently, the synaptics driver puts the device into Absolute mode.
As explained in the synaptics documentation section 3.2, in this mode,
the device sends a continuous stream of packets at the maximum rate
to the host when the user's fingers are near or on the pad or
pressing buttons, and continues streaming for 1 second afterwards.
These packets are even sent when there is no new information to report,
even when they are duplicates of the previous packet.

For embedded systems this is a bit much - it results in a huge
and uninterrupted stream of interrupts at high rate.

This patch adds support for Relative mode, which can be selected as
a new psmouse protocol. In this mode, the device does not send duplicate
packets and acts like a standard PS/2 mouse. However, synaptics-specific
functionality is still available, such as the ability to set the packet
rate, and rather than disabling gestures and taps at the hardware level
unconditionally, a 'synaptics_disable_gesture' sysfs attribute has
been added to allow control of this functionality.

This solves a long standing OLPC issue: synaptics hardware enables
tap to click by default (even in the default relative mode), but we
have found this to be inappropriate for young children and first
time computer users. Enabling the synaptics driver disables tap-to-click,
but we have previously been unable to use this because it also enables
Absolute mode, which is too "spammy" for our desires and actually
overloads our EC with its continuous stream of packets. Now we can enable
the synaptics driver, disabling tap to click while retaining the less
noisy Relative mode.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2011-11-09 21:23:31 -08:00
..
alps.c Input: ALPS - add semi-MT support for v3 protocol 2011-11-07 22:22:11 -08:00
alps.h Input: ALPS - add semi-MT support for v3 protocol 2011-11-07 22:22:11 -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/atari: Fix mouse movement and button mapping 2011-05-19 18:19:12 +02:00
bcm5974.c Input: bcm5974 - Add support for newer MacBookPro8,2 2011-08-16 23:31:43 -07:00
elantech.c Input: convert obsolete strict_strtox to kstrtox 2011-11-09 21:23:26 -08:00
elantech.h Input: elantech - better support all those v2 variants 2011-09-20 22:46:27 -07:00
gpio_mouse.c Input: update author email for gpio_mouse, at32psif, and atmel-wm97xx 2011-06-29 00:26:02 -07:00
hgpk.c Input: convert obsolete strict_strtox to kstrtox 2011-11-09 21:23:26 -08:00
hgpk.h Input: psmouse - switch to using dev_*() for messages 2011-10-10 18:28:16 -07:00
inport.c Input: remove CVS keywords 2008-05-20 12:17:39 -04:00
Kconfig kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08: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 Input: remove CVS keywords 2008-05-20 12:17:39 -04:00
logips2pp.c Input: convert obsolete strict_strtox to kstrtox 2011-11-09 21:23:26 -08: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: synaptics - add support for Relative mode 2011-11-09 21:23:31 -08:00
psmouse.h Input: synaptics - add support for Relative mode 2011-11-09 21:23:31 -08:00
pxa930_trkball.c Input: remove IRQF_DISABLED from drivers 2011-09-07 14:19:11 -07: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 Input: convert obsolete strict_strtox to kstrtox 2011-11-09 21:23:26 -08: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.c Input: synaptics - add support for Relative mode 2011-11-09 21:23:31 -08:00
synaptics.h Input: synaptics - add support for Relative mode 2011-11-09 21:23:31 -08:00
synaptics_i2c.c Input: synaptics_i2c - wrap suspend and resume in CONFIG_PM_SLEEP 2011-10-06 19:43:00 -07: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: convert obsolete strict_strtox to kstrtox 2011-11-09 21:23:26 -08:00
trackpoint.h Input: psmouse - use boolean type 2009-09-10 22:11:38 -07:00
vsxxxaa.c Fix common misspellings 2011-03-31 11:26:23 -03:00