HID: multitouch: add support for GeneralTouch multi-touchscreen
authorXianhan Yu <aroundight77@gmail.com>
Fri, 28 Sep 2012 02:18:59 +0000 (10:18 +0800)
committerJiri Kosina <jkosina@suse.cz>
Mon, 1 Oct 2012 08:15:02 +0000 (10:15 +0200)
Fix the touch-up no response problem on GeneralTouch twofingers touchscreen and
modify the driver for new GeneralTouch PWT touchscreen.

Signed-off-by: Xianhan Yu <aroundight77@gmail.com>
Reviewed-by Benjamin Tissoires <benjamin.tissoires@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-ids.h
drivers/hid/hid-multitouch.c

index 5f68149c2f7ef31b12414d5a514e50c074319b9c..54e15c47b405cbd12d6b1da565e7771e534094a4 100644 (file)
 
 #define USB_VENDOR_ID_GENERAL_TOUCH    0x0dfc
 #define USB_DEVICE_ID_GENERAL_TOUCH_WIN7_TWOFINGERS 0x0003
+#define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PWT_TENFINGERS 0x0100
 
 #define USB_VENDOR_ID_GLAB             0x06c2
 #define USB_DEVICE_ID_4_PHIDGETSERVO_30        0x0038
index e170112e2b84f8ccbeedd7ce14a7d380e7d6051a..9f3c5bf4dde3a4c03eff895a1ea086381a339fdd 100644 (file)
@@ -115,6 +115,8 @@ struct mt_device {
 #define MT_CLS_EGALAX_SERIAL                   0x0104
 #define MT_CLS_TOPSEED                         0x0105
 #define MT_CLS_PANASONIC                       0x0106
+#define MT_CLS_GENERALTOUCH_TWOFINGERS         0x0107
+#define MT_CLS_GENERALTOUCH_PWT_TENFINGERS     0x0108
 
 #define MT_DEFAULT_MAXCONTACT  10
 
@@ -215,6 +217,17 @@ static struct mt_class mt_classes[] = {
        { .name = MT_CLS_PANASONIC,
                .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP,
                .maxcontacts = 4 },
+       { .name = MT_CLS_GENERALTOUCH_TWOFINGERS,
+               .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP |
+                       MT_QUIRK_VALID_IS_INRANGE |
+                       MT_QUIRK_SLOT_IS_CONTACTNUMBER,
+               .maxcontacts = 2
+       },
+       { .name = MT_CLS_GENERALTOUCH_PWT_TENFINGERS,
+               .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP |
+                       MT_QUIRK_SLOT_IS_CONTACTNUMBER,
+               .maxcontacts = 10
+       },
 
        { }
 };
@@ -929,9 +942,12 @@ static const struct hid_device_id mt_devices[] = {
                        USB_DEVICE_ID_ELO_TS2515) },
 
        /* GeneralTouch panel */
-       { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
+       { .driver_data = MT_CLS_GENERALTOUCH_TWOFINGERS,
                MT_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH,
                        USB_DEVICE_ID_GENERAL_TOUCH_WIN7_TWOFINGERS) },
+       { .driver_data = MT_CLS_GENERALTOUCH_PWT_TENFINGERS,
+               MT_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH,
+                       USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PWT_TENFINGERS) },
 
        /* Gametel game controller */
        { .driver_data = MT_CLS_DEFAULT,