diff options
author | Aaron Tian <aaron_tian@pixart.com.tw> | 2011-12-14 22:09:06 -0500 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2011-12-15 05:13:41 -0500 |
commit | b7ea95ff9baab144dacdc30d752307938c5ab6bf (patch) | |
tree | f6bd75bc314ac943fece165ce968d48765010f59 /drivers/hid/hid-multitouch.c | |
parent | 545803651da8dde248eeb8ce3ed1e547e9e4ac0a (diff) |
HID: multitouch: support PixArt optical touch screen
This patch modifies hid-multitouch driver for supporting PixArt optical touch
screen. Because of the device does not have to set initial report, we apply
"HID_QUIRK_NO_INIT_REPORTS" quirk and add the device into hid_blacklist[]
Signed-off-by: Aaron Tian <aaron_tian@pixart.com.tw>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-multitouch.c')
-rw-r--r-- | drivers/hid/hid-multitouch.c | 15 |
1 files changed, 15 insertions, 0 deletions
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, |