summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Ritz <daniel.ritz-ml@swissonline.ch>2006-10-11 23:40:22 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2006-10-17 14:46:34 -0700
commit5dfb5f1d060a6f7dfddb78dc59f9e4d299088cc1 (patch)
treeb6aad7a1ca336538ba9ad58f97b319fe20415a13
parent9ab99c8c513313c1c5931bdbd27dcc4bc7a3b7cd (diff)
downloadblackbird-op-linux-5dfb5f1d060a6f7dfddb78dc59f9e4d299088cc1.tar.gz
blackbird-op-linux-5dfb5f1d060a6f7dfddb78dc59f9e4d299088cc1.zip
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>
-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 f26c1cd1129f..2902742895ad 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
OpenPOWER on IntegriCloud