diff options
-rw-r--r-- | drivers/hid/Kconfig | 1 | ||||
-rw-r--r-- | drivers/hid/hid-core.c | 3 | ||||
-rw-r--r-- | drivers/hid/hid-ids.h | 5 | ||||
-rw-r--r-- | drivers/hid/hid-multitouch.c | 15 | ||||
-rw-r--r-- | drivers/hid/usbhid/hid-quirks.c | 3 |
5 files changed, 27 insertions, 0 deletions
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index ee14f78139f0..5d6eb4e5af30 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig | |||
@@ -349,6 +349,7 @@ config HID_MULTITOUCH | |||
349 | - Lumio CrystalTouch panels | 349 | - Lumio CrystalTouch panels |
350 | - MosArt dual-touch panels | 350 | - MosArt dual-touch panels |
351 | - PenMount dual touch panels | 351 | - PenMount dual touch panels |
352 | - PixArt optical touch screen | ||
352 | - Pixcir dual touch panels | 353 | - Pixcir dual touch panels |
353 | - Quanta panels | 354 | - Quanta panels |
354 | - eGalax dual-touch panels, including the Joojoo and Wetab tablets | 355 | - eGalax dual-touch panels, including the Joojoo and Wetab tablets |
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 972f6040181f..2f8ad34a6a91 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -1501,6 +1501,9 @@ static const struct hid_device_id hid_have_special_driver[] = { | |||
1501 | { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) }, | 1501 | { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) }, |
1502 | { HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, USB_DEVICE_ID_PENMOUNT_PCI) }, | 1502 | { HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, USB_DEVICE_ID_PENMOUNT_PCI) }, |
1503 | { HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) }, | 1503 | { HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) }, |
1504 | { HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN) }, | ||
1505 | { HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1) }, | ||
1506 | { HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2) }, | ||
1504 | { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) }, | 1507 | { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) }, |
1505 | { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) }, | 1508 | { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) }, |
1506 | { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN) }, | 1509 | { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN) }, |
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index cddb639654cd..96e139f2351b 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h | |||
@@ -577,6 +577,11 @@ | |||
577 | #define USB_VENDOR_ID_PI_ENGINEERING 0x05f3 | 577 | #define USB_VENDOR_ID_PI_ENGINEERING 0x05f3 |
578 | #define USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL 0xff | 578 | #define USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL 0xff |
579 | 579 | ||
580 | #define USB_VENDOR_ID_PIXART 0x093a | ||
581 | #define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN 0x8001 | ||
582 | #define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1 0x8002 | ||
583 | #define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2 0x8003 | ||
584 | |||
580 | #define USB_VENDOR_ID_PLAYDOTCOM 0x0b43 | 585 | #define USB_VENDOR_ID_PLAYDOTCOM 0x0b43 |
581 | #define USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII 0x0003 | 586 | #define USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII 0x0003 |
582 | 587 | ||
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index de447d7fdc56..513329d9833f 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c | |||
@@ -93,6 +93,7 @@ struct mt_device { | |||
93 | #define MT_CLS_DUAL_INRANGE_CONTACTID 0x0006 | 93 | #define MT_CLS_DUAL_INRANGE_CONTACTID 0x0006 |
94 | #define MT_CLS_DUAL_INRANGE_CONTACTNUMBER 0x0007 | 94 | #define MT_CLS_DUAL_INRANGE_CONTACTNUMBER 0x0007 |
95 | #define MT_CLS_DUAL_NSMU_CONTACTID 0x0008 | 95 | #define MT_CLS_DUAL_NSMU_CONTACTID 0x0008 |
96 | #define MT_CLS_INRANGE_CONTACTNUMBER 0x0009 | ||
96 | 97 | ||
97 | /* vendor specific classes */ | 98 | /* vendor specific classes */ |
98 | #define MT_CLS_3M 0x0101 | 99 | #define MT_CLS_3M 0x0101 |
@@ -159,6 +160,9 @@ struct mt_class mt_classes[] = { | |||
159 | .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP | | 160 | .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP | |
160 | MT_QUIRK_SLOT_IS_CONTACTID, | 161 | MT_QUIRK_SLOT_IS_CONTACTID, |
161 | .maxcontacts = 2 }, | 162 | .maxcontacts = 2 }, |
163 | { .name = MT_CLS_INRANGE_CONTACTNUMBER, | ||
164 | .quirks = MT_QUIRK_VALID_IS_INRANGE | | ||
165 | MT_QUIRK_SLOT_IS_CONTACTNUMBER }, | ||
162 | 166 | ||
163 | /* | 167 | /* |
164 | * vendor specific classes | 168 | * vendor specific classes |
@@ -784,6 +788,17 @@ static const struct hid_device_id mt_devices[] = { | |||
784 | HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, | 788 | HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, |
785 | USB_DEVICE_ID_PENMOUNT_PCI) }, | 789 | USB_DEVICE_ID_PENMOUNT_PCI) }, |
786 | 790 | ||
791 | /* PixArt optical touch screen */ | ||
792 | { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER, | ||
793 | HID_USB_DEVICE(USB_VENDOR_ID_PIXART, | ||
794 | USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN) }, | ||
795 | { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER, | ||
796 | HID_USB_DEVICE(USB_VENDOR_ID_PIXART, | ||
797 | USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1) }, | ||
798 | { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER, | ||
799 | HID_USB_DEVICE(USB_VENDOR_ID_PIXART, | ||
800 | USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2) }, | ||
801 | |||
787 | /* PixCir-based panels */ | 802 | /* PixCir-based panels */ |
788 | { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, | 803 | { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, |
789 | HID_USB_DEVICE(USB_VENDOR_ID_HANVON, | 804 | HID_USB_DEVICE(USB_VENDOR_ID_HANVON, |
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c index 4ea464151c3b..b7962afa0b82 100644 --- a/drivers/hid/usbhid/hid-quirks.c +++ b/drivers/hid/usbhid/hid-quirks.c | |||
@@ -66,6 +66,9 @@ static const struct hid_blacklist { | |||
66 | { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET }, | 66 | { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET }, |
67 | { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET }, | 67 | { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET }, |
68 | { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, | 68 | { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, |
69 | { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NO_INIT_REPORTS }, | ||
70 | { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1, HID_QUIRK_NO_INIT_REPORTS }, | ||
71 | { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2, HID_QUIRK_NO_INIT_REPORTS }, | ||
69 | { USB_VENDOR_ID_PRODIGE, USB_DEVICE_ID_PRODIGE_CORDLESS, HID_QUIRK_NOGET }, | 72 | { USB_VENDOR_ID_PRODIGE, USB_DEVICE_ID_PRODIGE_CORDLESS, HID_QUIRK_NOGET }, |
70 | { USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NOGET }, | 73 | { USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NOGET }, |
71 | { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET }, | 74 | { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET }, |