summaryrefslogtreecommitdiffstats
path: root/hid-multitouch-add-support-for-elo-touchsystems.patch
blob: 320379920aaef602e46ec45a5f4a94eeec485fe1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
From: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Date: Thu, 19 May 2011 09:37:29 +0000 (+0200)
Subject: HID: hid-multitouch: add support for Elo TouchSystems 2515 IntelliTouch Plus
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fjikos%2Fhid.git;a=commitdiff_plain;h=c04abeeff9d76a703cac1e6d312853b0fc8136f5

HID: hid-multitouch: add support for Elo TouchSystems 2515 IntelliTouch Plus

This patch adds support for Elo TouchSystems 2515 IntelliTouch Plus
that can be found in Lenovo A700 all-in-one.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Tested-by: Bastien Nocera <hadess@hadess.net>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

--- linux-2.6.39.x86_64/drivers/hid/Kconfig	2011-05-19 00:06:34.000000000 -0400
+++ linux-2.6.39.x86_64/drivers/hid/Kconfig	2011-05-24 10:17:13.007752208 -0400
@@ -321,6 +321,7 @@
 
 	  Say Y here if you have one of the following devices:
 	  - Cypress TrueTouch panels
+	  - Elo TouchSystems IntelliTouch Plus panels
 	  - Hanvon dual touch panels
 	  - IrTouch Infrared USB panels
 	  - Pixcir dual touch panels
--- linux-2.6.39.x86_64/drivers/hid/hid-core.c	2011-05-24 10:14:17.000000000 -0400
+++ linux-2.6.39.x86_64/drivers/hid/hid-core.c	2011-05-24 10:17:47.418905357 -0400
@@ -1367,6 +1367,7 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4) },
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_BM084) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2515) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_EMS, USB_DEVICE_ID_EMS_TRIO_LINKER_PLUS_II) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR) },
--- linux-2.6.39.x86_64/drivers/hid/hid-ids.h	2011-05-24 10:14:17.000000000 -0400
+++ linux-2.6.39.x86_64/drivers/hid/hid-ids.h	2011-05-24 10:19:25.946345418 -0400
@@ -223,6 +223,7 @@
 #define USB_VENDOR_ID_DREAM_CHEEKY	0x1d34
 
 #define USB_VENDOR_ID_ELO		0x04E7
+#define USB_DEVICE_ID_ELO_TS2515	0x0022
 #define USB_DEVICE_ID_ELO_TS2700	0x0020
 
 #define USB_VENDOR_ID_EMS		0x2006
--- linux-2.6.39.x86_64/drivers/hid/hid-multitouch.c	2011-05-19 00:06:34.000000000 -0400
+++ linux-2.6.39.x86_64/drivers/hid/hid-multitouch.c	2011-05-24 10:22:32.505183658 -0400
@@ -78,6 +78,7 @@
 #define MT_CLS_DUAL_INRANGE_CONTACTNUMBER	3
 #define MT_CLS_CYPRESS				4
 #define MT_CLS_EGALAX				5
+#define MT_CLS_DUAL_NSMU_CONTACTID		6
 
 /*
  * these device-dependent functions determine what slot corresponds
@@ -136,6 +137,13 @@
 		.sn_move = 4096,
 		.sn_pressure = 32,
 	},
+
+	{ .name = MT_CLS_DUAL_NSMU_CONTACTID,
+		.quirks = MT_QUIRK_NOT_SEEN_MEANS_UP |
+			MT_QUIRK_SLOT_IS_CONTACTID,
+		.maxcontacts = 2
+	},
+
 	{ }
 };
 
@@ -493,6 +501,11 @@
 		HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS,
 			USB_DEVICE_ID_CYPRESS_TRUETOUCH) },
 
+	/* Elo TouchSystems IntelliTouch Plus panel */
+	{ .driver_data = MT_CLS_DUAL_NSMU_CONTACTID,
+		HID_USB_DEVICE(USB_VENDOR_ID_ELO,
+			USB_DEVICE_ID_ELO_TS2515) },
+
 	/* GeneralTouch panel */
 	{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
 		HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH,