HID: multitouch: fix protocol for Elo panels
authorBenjamin Tissoires <benjamin.tissoires@gmail.com>
Thu, 31 Jan 2013 16:22:30 +0000 (17:22 +0100)
committerJiri Kosina <jkosina@suse.cz>
Tue, 5 Feb 2013 11:07:41 +0000 (12:07 +0100)
The previous protocol was nearly working, but when several fingers were
present on the sensor, those that were not moving were not updated
in the next report, introducing a lot of releases.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Conflicts:
drivers/hid/hid-multitouch.c
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-multitouch.c

index e2fc1211f130015fe55f23470b71b271e3bdeef8..a3d4f0fbc4bebdb05b5e259d1dcb13815bf8cbaf 100644 (file)
@@ -116,6 +116,7 @@ struct mt_device {
 #define MT_CLS_INRANGE_CONTACTNUMBER           0x0009
 #define MT_CLS_ALWAYS_TRUE                     0x000a
 #define MT_CLS_DUAL_CONTACT_NUMBER             0x0010
+#define MT_CLS_DUAL_CONTACT_ID                 0x0011
 
 /* vendor specific classes */
 #define MT_CLS_3M                              0x0101
@@ -183,6 +184,11 @@ static struct mt_class mt_classes[] = {
                        MT_QUIRK_CONTACT_CNT_ACCURATE |
                        MT_QUIRK_SLOT_IS_CONTACTNUMBER,
                .maxcontacts = 2 },
+       { .name = MT_CLS_DUAL_CONTACT_ID,
+               .quirks = MT_QUIRK_ALWAYS_VALID |
+                       MT_QUIRK_CONTACT_CNT_ACCURATE |
+                       MT_QUIRK_SLOT_IS_CONTACTID,
+               .maxcontacts = 2 },
 
        /*
         * vendor specific classes
@@ -1040,7 +1046,7 @@ static const struct hid_device_id mt_devices[] = {
                        USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72C4) },
 
        /* Elo TouchSystems IntelliTouch Plus panel */
-       { .driver_data = MT_CLS_DUAL_NSMU_CONTACTID,
+       { .driver_data = MT_CLS_DUAL_CONTACT_ID,
                MT_USB_DEVICE(USB_VENDOR_ID_ELO,
                        USB_DEVICE_ID_ELO_TS2515) },