diff options
author | Daniel Ritz <daniel.ritz-ml@swissonline.ch> | 2006-10-11 21:40:22 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-10-17 21:46:34 (GMT) |
commit | 5dfb5f1d060a6f7dfddb78dc59f9e4d299088cc1 (patch) | |
tree | b6aad7a1ca336538ba9ad58f97b319fe20415a13 /drivers/usb/input | |
parent | 9ab99c8c513313c1c5931bdbd27dcc4bc7a3b7cd (diff) | |
download | linux-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.c | 4 |
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 |