HID: Fix for problems with eGalax/DWAV multi-touch-screen
commitf51661105c3c8a0afcd69f995a4f4a10e53da153
authorPhilipp Merkel <mail@philmerk.de>
Fri, 1 Oct 2010 13:38:59 +0000 (1 15:38 +0200)
committerJiri Kosina <jkosina@suse.cz>
Fri, 1 Oct 2010 13:39:51 +0000 (1 15:39 +0200)
treee6ac6703e5b4973b2c5d23de6182e7725dff59f8
parenta850ea30374ebed32a0724742601861853fde869
HID: Fix for problems with eGalax/DWAV multi-touch-screen

This patch fixes three problems with the eGalax/DWAV multi-touch
screen found in the Eee PC T101MT:

1) While there is a dedicated multitouch driver for the screen
   (hid-egalax.c), the MULTI_INPUT quirk is also applied, preventing
   the hid-egalax driver from working. This patch removes the quirk
   so the hid-egalax driver can handle the device correctly.
2) The x and y coordinates sent by the screen in multi-touch mode are
   shifted by three bits from the events sent in single-touch mode, thus
   the coordinates are out of range, leading to the pointer being stuck
   in the bottom-right corner if no additional calibration is applied
   (e.g. in the X evdev driver). This patch shifts the coordinates back.
   This does not decrease accuracy as the last three bits of the "wrong"
   coordinates are always 0.
3) Only multi-touch pressure events are sent, single touch emulation is
   missing pressure information. This patch adds single-touch
   ABS_PRESSURE events.

Signed-off-by: Philipp Merkel <mail@philmerk.de>
Acked-by: Stéphane Chatty <chatty@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-egalax.c
drivers/hid/usbhid/hid-quirks.c