aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid/hid-multitouch.c
diff options
context:
space:
mode:
authorAaron Tian <aaron_tian@pixart.com.tw>2011-12-14 22:09:06 -0500
committerJiri Kosina <jkosina@suse.cz>2011-12-15 05:13:41 -0500
commitb7ea95ff9baab144dacdc30d752307938c5ab6bf (patch)
treef6bd75bc314ac943fece165ce968d48765010f59 /drivers/hid/hid-multitouch.c
parent545803651da8dde248eeb8ce3ed1e547e9e4ac0a (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.c15
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,