summaryrefslogtreecommitdiff
path: root/drivers/usb/input
diff options
context:
space:
mode:
authorDaniel Ritz <daniel.ritz-ml@swissonline.ch>2006-10-11 21:40:22 (GMT)
committerGreg Kroah-Hartman <gregkh@suse.de>2006-10-17 21:46:34 (GMT)
commit5dfb5f1d060a6f7dfddb78dc59f9e4d299088cc1 (patch)
treeb6aad7a1ca336538ba9ad58f97b319fe20415a13 /drivers/usb/input
parent9ab99c8c513313c1c5931bdbd27dcc4bc7a3b7cd (diff)
downloadlinux-5dfb5f1d060a6f7dfddb78dc59f9e4d299088cc1.tar.xz
usbtouchscreen: fix data reading for ITM touchscreens
ITM devices seem to report only garbage when not touched. update usbtouchscreen to do data reading like itmtouch. also fix wrong mask on pressure bits. Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/input')
-rw-r--r--drivers/usb/input/usbtouchscreen.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/input/usbtouchscreen.c b/drivers/usb/input/usbtouchscreen.c
index f26c1cd..2902742 100644
--- a/drivers/usb/input/usbtouchscreen.c
+++ b/drivers/usb/input/usbtouchscreen.c
@@ -256,10 +256,10 @@ static int itm_read_data(unsigned char *pkt, int *x, int *y, int *touch, int *pr
{
*x = ((pkt[0] & 0x1F) << 7) | (pkt[3] & 0x7F);
*y = ((pkt[1] & 0x1F) << 7) | (pkt[4] & 0x7F);
- *press = ((pkt[2] & 0x1F) << 7) | (pkt[5] & 0x7F);
+ *press = ((pkt[2] & 0x01) << 7) | (pkt[5] & 0x7F);
*touch = ~pkt[7] & 0x20;
- return 1;
+ return *touch;
}
#endif