OSDN Git Service

HID: multitouch: Add support for Google Rose Touchpad
authorWei-Ning Huang <wnhuang@chromium.org>
Wed, 21 Jun 2017 02:43:25 +0000 (10:43 +0800)
committerJiri Kosina <jkosina@suse.cz>
Wed, 21 Jun 2017 09:31:23 +0000 (11:31 +0200)
Add Google Rose Touchpad USB PID and required quirks.

Signed-off-by: Wei-Ning Huang <wnhuang@chromium.org>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-ids.h
drivers/hid/hid-multitouch.c

index d36d4ac..d557969 100644 (file)
 #define USB_VENDOR_ID_GOODTOUCH                0x1aad
 #define USB_DEVICE_ID_GOODTOUCH_000f   0x000f
 
+#define USB_VENDOR_ID_GOOGLE           0x18d1
+#define USB_DEVICE_ID_GOOGLE_TOUCH_ROSE        0x5028
+
 #define USB_VENDOR_ID_GOTOP            0x08f2
 #define USB_DEVICE_ID_SUPER_Q2         0x007f
 #define USB_DEVICE_ID_GOGOPEN          0x00ce
index ba9d902..f07256e 100644 (file)
@@ -162,6 +162,7 @@ static void mt_post_parse(struct mt_device *td);
 #define MT_CLS_GENERALTOUCH_PWT_TENFINGERS     0x0109
 #define MT_CLS_LG                              0x010a
 #define MT_CLS_VTL                             0x0110
+#define MT_CLS_GOOGLE                          0x0111
 
 #define MT_DEFAULT_MAXCONTACT  10
 #define MT_MAX_MAXCONTACT      250
@@ -285,6 +286,12 @@ static struct mt_class mt_classes[] = {
                        MT_QUIRK_CONTACT_CNT_ACCURATE |
                        MT_QUIRK_FORCE_GET_FEATURE,
        },
+       { .name = MT_CLS_GOOGLE,
+               .quirks = MT_QUIRK_ALWAYS_VALID |
+                       MT_QUIRK_CONTACT_CNT_ACCURATE |
+                       MT_QUIRK_SLOT_IS_CONTACTID |
+                       MT_QUIRK_HOVERING
+       },
        { }
 };
 
@@ -1588,6 +1595,11 @@ static const struct hid_device_id mt_devices[] = {
                MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
                        USB_DEVICE_ID_XIROKU_CSR2) },
 
+       /* Google MT devices */
+       { .driver_data = MT_CLS_GOOGLE,
+               HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_GOOGLE,
+                       USB_DEVICE_ID_GOOGLE_TOUCH_ROSE) },
+
        /* Generic MT device */
        { HID_DEVICE(HID_BUS_ANY, HID_GROUP_MULTITOUCH, HID_ANY_ID, HID_ANY_ID) },