usbtouchscreen: fix data reading for ITM touchscreens
authorDaniel Ritz <daniel.ritz-ml@swissonline.ch>
Wed, 11 Oct 2006 21:40:22 +0000 (23:40 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 17 Oct 2006 21:46:34 +0000 (14:46 -0700)
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>
drivers/usb/input/usbtouchscreen.c

index f26c1cd..2902742 100644 (file)
@@ -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