OSDN Git Service

HID: add support for PenMount dual-touch panel
authorBenjamin Tissoires <benjamin.tissoires@gmail.com>
Fri, 22 Apr 2011 08:42:15 +0000 (10:42 +0200)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Fri, 22 Apr 2011 12:04:44 +0000 (20:04 +0800)
This patch adds PenMount support to hid-multitouch.
A new class MT_CLS_CONFIDENCE is defined for PenMount,
since it uses HID_DG_CONFIDENCE as the valid flag.

The patch has an effect on MT_CLS_CONFIDENCE_MINUS_ONE
to keep it synchronized with the upstream kernel.

Signed-off-by: John Sung <penmount.touch@gmail.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Acked-by: Henrik Rydberg <rydberg@euromail.se>
drivers/hid/Kconfig
drivers/hid/hid-core.c
drivers/hid/hid-ids.h
drivers/hid/hid-multitouch.c

index 961cec2..c259883 100644 (file)
@@ -283,6 +283,7 @@ config HID_MULTITOUCH
          - Hanvon dual touch panels
          - IrTouch Infrared USB panels
          - MosArt dual-touch panels
+         - PenMount dual touch panels
          - Pixcir dual touch panels
          - 'Sensing Win7-TwoFinger' panel by GeneralTouch
           - eGalax dual-touch panels, including the
index 9d2664b..723c1b8 100644 (file)
@@ -1405,6 +1405,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
        { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_17) },
        { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18) },
        { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, USB_DEVICE_ID_PENMOUNT_PCI) },
        { HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) },
        { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) },
        { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN) },
index b1dd7ad..239fa42 100644 (file)
 #define USB_VENDOR_ID_PANTHERLORD      0x0810
 #define USB_DEVICE_ID_PANTHERLORD_TWIN_USB_JOYSTICK    0x0001
 
+#define USB_VENDOR_ID_PENMOUNT         0x14e1
+#define USB_DEVICE_ID_PENMOUNT_PCI     0x3500
+
 #define USB_VENDOR_ID_PETALYNX         0x18b1
 #define USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE   0x0037
 
index 35cfa68..ff230fe 100644 (file)
@@ -90,7 +90,8 @@ struct mt_class {
 #define MT_CLS_EGALAX                          5
 #define MT_CLS_STANTUM                         6
 #define MT_CLS_3M                              7
-#define MT_CLS_CONFIDENCE_MINUS_ONE            8
+#define MT_CLS_CONFIDENCE                      8
+#define MT_CLS_CONFIDENCE_MINUS_ONE            9
 
 #define MT_DEFAULT_MAXCONTACT  10
 
@@ -141,7 +142,9 @@ struct mt_class mt_classes[] = {
                .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP |
                        MT_QUIRK_CYPRESS,
                .maxcontacts = 10 },
-
+       { .name = MT_CLS_CONFIDENCE_MINUS_ONE,
+               .quirks = MT_QUIRK_VALID_IS_CONFIDENCE |
+                       MT_QUIRK_SLOT_IS_CONTACTID_MINUS_ONE },
        { .name = MT_CLS_EGALAX,
                .quirks =  MT_QUIRK_SLOT_IS_CONTACTID |
                        MT_QUIRK_VALID_IS_INRANGE |
@@ -158,9 +161,8 @@ struct mt_class mt_classes[] = {
                .sn_move = 2048,
                .sn_width = 128,
                .sn_height = 128 },
-       { .name = MT_CLS_CONFIDENCE_MINUS_ONE,
-               .quirks = MT_QUIRK_VALID_IS_CONFIDENCE |
-                       MT_QUIRK_SLOT_IS_CONTACTID_MINUS_ONE },
+       { .name = MT_CLS_CONFIDENCE,
+               .quirks = MT_QUIRK_VALID_IS_CONFIDENCE },
 
        { }
 };
@@ -624,6 +626,11 @@ static const struct hid_device_id mt_devices[] = {
                HID_USB_DEVICE(USB_VENDOR_ID_TURBOX,
                        USB_DEVICE_ID_TURBOX_TOUCHSCREEN_MOSART) },
 
+       /* PenMount panels */
+       { .driver_data = MT_CLS_CONFIDENCE,
+               HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT,
+                       USB_DEVICE_ID_PENMOUNT_PCI) },
+
        /* PixCir-based panels */
        { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID,
                HID_USB_DEVICE(USB_VENDOR_ID_HANVON,