HID: multitouch: correct eGalax a001 protocol
authorBenjamin Tissoires <benjamin.tissoires@gmail.com>
Wed, 23 Nov 2011 09:54:34 +0000 (10:54 +0100)
committerLuis Henriques <luis.henriques@canonical.com>
Mon, 30 Apr 2012 18:15:14 +0000 (19:15 +0100)
BugLink: http://bugs.launchpad.net/bugs/913164

This device use another protocol while sending the events.
It's the same as the one described as "serial" by Microsoft.
We are keeping here the sn_move and sn_pressure parameters for
egalax devices.

CC: Cedric Sodhi <manday@gmx.net>
CC: Chris Bagwell <chris@cnpbagwell.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
(cherry picked from commit 1b723e8dc81b23141bfb8991e002073b17fd0199)

Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Acked-by: Herton Krzesinski <herton.krzesinski@canonical.com>

drivers/hid/hid-multitouch.c

index 7c47348..a3312ac 100644 (file)
@@ -99,6 +99,7 @@ struct mt_class {
 #define MT_CLS_3M                              0x0101
 #define MT_CLS_CYPRESS                         0x0102
 #define MT_CLS_EGALAX                          0x0103
 #define MT_CLS_3M                              0x0101
 #define MT_CLS_CYPRESS                         0x0102
 #define MT_CLS_EGALAX                          0x0103
+#define MT_CLS_EGALAX_SERIAL                   0x0104
 
 #define MT_DEFAULT_MAXCONTACT  10
 
 
 #define MT_DEFAULT_MAXCONTACT  10
 
@@ -181,6 +182,12 @@ struct mt_class mt_classes[] = {
                .sn_move = 4096,
                .sn_pressure = 32,
        },
                .sn_move = 4096,
                .sn_pressure = 32,
        },
+       { .name = MT_CLS_EGALAX_SERIAL,
+               .quirks =  MT_QUIRK_SLOT_IS_CONTACTID |
+                       MT_QUIRK_ALWAYS_VALID,
+               .sn_move = 4096,
+               .sn_pressure = 32,
+       },
 
        { }
 };
 
        { }
 };
@@ -680,7 +687,7 @@ static const struct hid_device_id mt_devices[] = {
        { .driver_data = MT_CLS_EGALAX,
                HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
                        USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302) },
        { .driver_data = MT_CLS_EGALAX,
                HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
                        USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302) },
-       { .driver_data = MT_CLS_EGALAX,
+       { .driver_data = MT_CLS_EGALAX_SERIAL,
                HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
                        USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) },
 
                HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
                        USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) },