With the patch this time.... ;) On Wed, Feb 2, 2011 at 14:18, Benjamin Tissoires <benjamin.tissoires@xxxxxxxxx> wrote: > On Wed, Feb 2, 2011 at 13:42, Bastien Nocera <hadess@xxxxxxxxxx> wrote: >> On Tue, 2011-02-01 at 14:25 +0100, Benjamin Tissoires wrote: >> <snip> >>> First pass: >>> - please get the branch multitouch of jiri's tree (at >>> http://git.kernel.org/?p=linux/kernel/git/jikos/hid.git;a=shortlog;h=refs/heads/multitouch) >>> - then apply the attached patch (git am >>> 0001-hid-multitouch-Introduce-Elo-TouchSystems-2515-Intel.patch) >>> - get your config from your current kernel (check that hid-multitouch >>> is enabled as a module) >>> - compile, install, reboot >> >> That's where I hit a problem. It seems that the kernel on which that >> branch is based has broken cgroups support (it panics on startup). >> >> Would your patch, or a patchset be available to apply to the close to >> Linus tree Fedora rawhide kernel? > > Hi Bastien, > > Sorry for that. Attached a new version that bumps a Linus' 2.6.38-rc2 > or 2.6.38-rc3 to Jiri's tree and applies the patch above. > > If it's still not working, I'll send you the files directly ;) > >> >>> - Now your device should still work and must be handled by hid-multitouch >>> if it's the case: >> >> As soon as I manage to get it to boot, I'll be doing that :) > > Cool ;) > > Cheers, > Benjamin >
From 54ec421eab53f5da4ab4b687da0b7cac824e5cc8 Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires <benjamin.tissoires@xxxxxxx> Date: Wed, 2 Feb 2011 14:03:28 +0100 Subject: [PATCH] hid-multitouch: Introduce 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. In addition, it also sync with Jiri's development tree. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxx> --- drivers/hid/Kconfig | 2 ++ drivers/hid/hid-core.c | 1 + drivers/hid/hid-ids.h | 4 ++++ drivers/hid/hid-multitouch.c | 31 +++++++++++++++++++++---------- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index 2560f01..c2555f8 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig @@ -303,7 +303,9 @@ config HID_MULTITOUCH 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 - 'Sensing Win7-TwoFinger' panel by GeneralTouch diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index d678cf3..e701e57 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -1334,6 +1334,7 @@ static const struct hid_device_id hid_have_special_driver[] = { { 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) }, diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 92a0d61..7780c48 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -216,6 +216,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 @@ -333,6 +334,9 @@ #define USB_VENDOR_ID_IMATION 0x0718 #define USB_DEVICE_ID_DISC_STAKKA 0xd000 +#define USB_VENDOR_ID_IRTOUCHSYSTEMS 0x6615 +#define USB_DEVICE_ID_IRTOUCH_INFRARED_USB 0x0070 + #define USB_VENDOR_ID_JESS 0x0c45 #define USB_DEVICE_ID_JESS_YUREX 0x1010 diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index 07d3183..a721710 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -24,6 +24,7 @@ MODULE_AUTHOR("Stephane Chatty <chatty@xxxxxxx>"); +MODULE_AUTHOR("Benjamin Tissoires <benjamin.tissoires@xxxxxxxxx>"); MODULE_DESCRIPTION("HID multitouch panels"); MODULE_LICENSE("GPL"); @@ -65,10 +66,10 @@ struct mt_class { }; /* classes of device behavior */ -#define MT_CLS_DEFAULT 1 -#define MT_CLS_DUAL1 2 -#define MT_CLS_DUAL2 3 -#define MT_CLS_CYPRESS 4 +#define MT_CLS_DEFAULT 1 +#define MT_CLS_DUAL_INRANGE_CONTACTID 2 +#define MT_CLS_DUAL_INRANGE_CONTACTNUMBER 3 +#define MT_CLS_CYPRESS 4 /* * these device-dependent functions determine what slot corresponds @@ -104,13 +105,13 @@ static int find_slot_from_contactid(struct mt_device *td) struct mt_class mt_classes[] = { { .name = MT_CLS_DEFAULT, - .quirks = MT_QUIRK_VALID_IS_INRANGE, + .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP, .maxcontacts = 10 }, - { .name = MT_CLS_DUAL1, + { .name = MT_CLS_DUAL_INRANGE_CONTACTID, .quirks = MT_QUIRK_VALID_IS_INRANGE | MT_QUIRK_SLOT_IS_CONTACTID, .maxcontacts = 2 }, - { .name = MT_CLS_DUAL2, + { .name = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, .quirks = MT_QUIRK_VALID_IS_INRANGE | MT_QUIRK_SLOT_IS_CONTACTNUMBER, .maxcontacts = 2 }, @@ -465,16 +466,26 @@ static const struct hid_device_id mt_devices[] = { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_TRUETOUCH) }, + /* Elo TouchSystems IntelliTouch Plus panel */ + { .driver_data = MT_CLS_DEFAULT, + HID_USB_DEVICE(USB_VENDOR_ID_ELO, + USB_DEVICE_ID_ELO_TS2515) }, + /* GeneralTouch panel */ - { .driver_data = MT_CLS_DUAL2, + { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, USB_DEVICE_ID_GENERAL_TOUCH_WIN7_TWOFINGERS) }, + /* IRTOUCH panels */ + { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, + HID_USB_DEVICE(USB_VENDOR_ID_IRTOUCHSYSTEMS, + USB_DEVICE_ID_IRTOUCH_INFRARED_USB) }, + /* PixCir-based panels */ - { .driver_data = MT_CLS_DUAL1, + { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, HID_USB_DEVICE(USB_VENDOR_ID_HANVON, USB_DEVICE_ID_HANVON_MULTITOUCH) }, - { .driver_data = MT_CLS_DUAL1, + { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, HID_USB_DEVICE(USB_VENDOR_ID_CANDO, USB_DEVICE_ID_CANDO_PIXCIR_MULTI_TOUCH) }, -- 1.7.3.4