* [PATCH] Input: hid-multitouch- support PixArt optical touch screen @ 2011-12-06 10:12 aaron_tian 2011-12-06 11:27 ` JJ Ding 0 siblings, 1 reply; 3+ messages in thread From: aaron_tian @ 2011-12-06 10:12 UTC (permalink / raw) To: linux-input; +Cc: dmitry.torokhov From: Aaron Tian <aaron_tian@pixart.com.tw> Hello, This ia Aaron Tian in Pixart. We have modified the hid-multitouch driver for supporting PixArt optical touch screen and it works well. 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 in drivers/hid/usbhid/hid-quirks.c The patch is according to commit 45e713efe2fa574b6662e7fb63fae9497c5e03d4 of Linux mainline git (3.2.0-rc4+) Signed-off-by: Aaron Tian <aaron_tian@pixart.com.tw> --- drivers/hid/Kconfig | 1 + drivers/hid/hid-core.c | 1 + drivers/hid/hid-ids.h | 3 +++ drivers/hid/hid-multitouch.c | 5 +++++ drivers/hid/usbhid/hid-quirks.c | 1 + 5 files changed, 11 insertions(+), 0 deletions(-) diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index 22a4a05..eda54b6 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig @@ -349,6 +349,7 @@ config HID_MULTITOUCH - Lumio CrystalTouch panels - MosArt dual-touch panels - PenMount dual touch panels + - PixArt optical touch screen - Pixcir dual touch panels - eGalax dual-touch panels, including the Joojoo and Wetab tablets - Stantum multitouch panels diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index af35384..e9280ef 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -1498,6 +1498,7 @@ static const struct hid_device_id hid_have_special_driver[] = { { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) }, { HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, USB_DEVICE_ID_PENMOUNT_PCI) }, { HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) }, + { HID_USB_DEVICE(USB_VENDOR_TYPE_PIXART, USB_DEVICE_TYPE_PIXART_OPTICAL_TOUCH_SCREEN) }, { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) }, { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) }, { 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 4a441a6..869911b 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -571,6 +571,9 @@ #define USB_VENDOR_ID_PI_ENGINEERING 0x05f3 #define USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL 0xff +#define USB_VENDOR_TYPE_PIXART 0x093a +#define USB_DEVICE_TYPE_PIXART_OPTICAL_TOUCH_SCREEN 0x8001 + #define USB_VENDOR_ID_PLAYDOTCOM 0x0b43 #define USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII 0x0003 diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index f1c909f..2f338b1 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -722,6 +722,11 @@ static const struct hid_device_id mt_devices[] = { HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, USB_DEVICE_ID_PENMOUNT_PCI) }, + /* PixArt optical touch screen */ + { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, + HID_USB_DEVICE(USB_VENDOR_ID_PIXART, + USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN) }, + /* PixCir-based panels */ { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, HID_USB_DEVICE(USB_VENDOR_ID_HANVON, diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c index 5028d60..99324eb 100644 --- a/drivers/hid/usbhid/hid-quirks.c +++ b/drivers/hid/usbhid/hid-quirks.c @@ -67,6 +67,7 @@ static const struct hid_blacklist { { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET }, { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET }, { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, + { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NO_INIT_REPORTS }, { USB_VENDOR_ID_PRODIGE, USB_DEVICE_ID_PRODIGE_CORDLESS, HID_QUIRK_NOGET }, { USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NOGET }, { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET }, ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] Input: hid-multitouch- support PixArt optical touch screen 2011-12-06 10:12 [PATCH] Input: hid-multitouch- support PixArt optical touch screen aaron_tian @ 2011-12-06 11:27 ` JJ Ding 2011-12-06 17:55 ` Benjamin Tissoires 0 siblings, 1 reply; 3+ messages in thread From: JJ Ding @ 2011-12-06 11:27 UTC (permalink / raw) To: aaron_tian, linux-input; +Cc: dmitry.torokhov Hi Aaron, I can't apply your patch. Your MUA seems to wrap the mail. Maybe you want to use "git send-email" instead. Btw, the fisrt part of the mail should be your commit message. You can put your explanation below the "---" line. And hid drivers are maintained by Jiri Kosina <jkosina@suse.cz>, you might also CC Jiri next time. Thanks. br, jj On Tue, 6 Dec 2011 18:12:19 +0800, aaron_tian@pixart.com.tw wrote: > From: Aaron Tian <aaron_tian@pixart.com.tw> > > Hello, > > This ia Aaron Tian in Pixart. We have modified the hid-multitouch driver > for > supporting PixArt optical touch screen and it works well. 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 in > drivers/hid/usbhid/hid-quirks.c > > The patch is according to commit 45e713efe2fa574b6662e7fb63fae9497c5e03d4 > of > Linux mainline git (3.2.0-rc4+) > > > Signed-off-by: Aaron Tian <aaron_tian@pixart.com.tw> > --- > drivers/hid/Kconfig | 1 + > drivers/hid/hid-core.c | 1 + > drivers/hid/hid-ids.h | 3 +++ > drivers/hid/hid-multitouch.c | 5 +++++ > drivers/hid/usbhid/hid-quirks.c | 1 + > 5 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig > index 22a4a05..eda54b6 100644 > --- a/drivers/hid/Kconfig > +++ b/drivers/hid/Kconfig > @@ -349,6 +349,7 @@ config HID_MULTITOUCH > - Lumio CrystalTouch panels > - MosArt dual-touch panels > - PenMount dual touch panels > + - PixArt optical touch screen > - Pixcir dual touch panels > - eGalax dual-touch panels, including the Joojoo and Wetab > tablets > - Stantum multitouch panels > diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c > index af35384..e9280ef 100644 > --- a/drivers/hid/hid-core.c > +++ b/drivers/hid/hid-core.c > @@ -1498,6 +1498,7 @@ static const struct hid_device_id > hid_have_special_driver[] = { > { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) > }, > { HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, > USB_DEVICE_ID_PENMOUNT_PCI) }, > { HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, > USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) }, > + { HID_USB_DEVICE(USB_VENDOR_TYPE_PIXART, > USB_DEVICE_TYPE_PIXART_OPTICAL_TOUCH_SCREEN) }, > { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, > USB_DEVICE_ID_PRIMAX_KEYBOARD) }, > { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, > USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) }, > { 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 4a441a6..869911b 100644 > --- a/drivers/hid/hid-ids.h > +++ b/drivers/hid/hid-ids.h > @@ -571,6 +571,9 @@ > #define USB_VENDOR_ID_PI_ENGINEERING 0x05f3 > #define USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL 0xff > > +#define USB_VENDOR_TYPE_PIXART 0x093a > +#define USB_DEVICE_TYPE_PIXART_OPTICAL_TOUCH_SCREEN 0x8001 > + > #define USB_VENDOR_ID_PLAYDOTCOM 0x0b43 > #define USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII 0x0003 > > diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c > index f1c909f..2f338b1 100644 > --- a/drivers/hid/hid-multitouch.c > +++ b/drivers/hid/hid-multitouch.c > @@ -722,6 +722,11 @@ static const struct hid_device_id mt_devices[] = { > HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, > USB_DEVICE_ID_PENMOUNT_PCI) }, > > + /* PixArt optical touch screen */ > + { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, > + HID_USB_DEVICE(USB_VENDOR_ID_PIXART, > + USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN) }, > + > /* PixCir-based panels */ > { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, > HID_USB_DEVICE(USB_VENDOR_ID_HANVON, > diff --git a/drivers/hid/usbhid/hid-quirks.c > b/drivers/hid/usbhid/hid-quirks.c > index 5028d60..99324eb 100644 > --- a/drivers/hid/usbhid/hid-quirks.c > +++ b/drivers/hid/usbhid/hid-quirks.c > @@ -67,6 +67,7 @@ static const struct hid_blacklist { > { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET }, > { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET }, > { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, > + { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN, > HID_QUIRK_NO_INIT_REPORTS }, > { USB_VENDOR_ID_PRODIGE, USB_DEVICE_ID_PRODIGE_CORDLESS, > HID_QUIRK_NOGET }, > { USB_VENDOR_ID_QUANTA, > USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NOGET }, > { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, > HID_QUIRK_NOGET }, > -- > To unsubscribe from this list: send the line "unsubscribe linux-input" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] Input: hid-multitouch- support PixArt optical touch screen 2011-12-06 11:27 ` JJ Ding @ 2011-12-06 17:55 ` Benjamin Tissoires 0 siblings, 0 replies; 3+ messages in thread From: Benjamin Tissoires @ 2011-12-06 17:55 UTC (permalink / raw) To: JJ Ding; +Cc: aaron_tian, linux-input, dmitry.torokhov Hi Aaron, on top of JJ's comments: On Tue, Dec 6, 2011 at 12:27, JJ Ding <jj_ding@emc.com.tw> wrote: > Hi Aaron, > > I can't apply your patch. Your MUA seems to wrap the mail. Maybe you > want to use "git send-email" instead. > > Btw, the fisrt part of the mail should be your commit message. You can > put your explanation below the "---" line. And hid drivers are > maintained by Jiri Kosina <jkosina@suse.cz>, you might also CC Jiri next > time. > > Thanks. > > br, > jj > > On Tue, 6 Dec 2011 18:12:19 +0800, aaron_tian@pixart.com.tw wrote: >> From: Aaron Tian <aaron_tian@pixart.com.tw> >> >> Hello, >> >> This ia Aaron Tian in Pixart. We have modified the hid-multitouch driver >> for >> supporting PixArt optical touch screen and it works well. 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 in >> drivers/hid/usbhid/hid-quirks.c >> >> The patch is according to commit 45e713efe2fa574b6662e7fb63fae9497c5e03d4 >> of >> Linux mainline git (3.2.0-rc4+) >> >> >> Signed-off-by: Aaron Tian <aaron_tian@pixart.com.tw> >> --- > > >> drivers/hid/Kconfig | 1 + >> drivers/hid/hid-core.c | 1 + >> drivers/hid/hid-ids.h | 3 +++ >> drivers/hid/hid-multitouch.c | 5 +++++ >> drivers/hid/usbhid/hid-quirks.c | 1 + >> 5 files changed, 11 insertions(+), 0 deletions(-) >> >> diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig >> index 22a4a05..eda54b6 100644 >> --- a/drivers/hid/Kconfig >> +++ b/drivers/hid/Kconfig >> @@ -349,6 +349,7 @@ config HID_MULTITOUCH >> - Lumio CrystalTouch panels >> - MosArt dual-touch panels >> - PenMount dual touch panels >> + - PixArt optical touch screen >> - Pixcir dual touch panels >> - eGalax dual-touch panels, including the Joojoo and Wetab >> tablets >> - Stantum multitouch panels >> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c >> index af35384..e9280ef 100644 >> --- a/drivers/hid/hid-core.c >> +++ b/drivers/hid/hid-core.c >> @@ -1498,6 +1498,7 @@ static const struct hid_device_id >> hid_have_special_driver[] = { >> { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) >> }, >> { HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, >> USB_DEVICE_ID_PENMOUNT_PCI) }, >> { HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, >> USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) }, >> + { HID_USB_DEVICE(USB_VENDOR_TYPE_PIXART, >> USB_DEVICE_TYPE_PIXART_OPTICAL_TOUCH_SCREEN) }, >> { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, >> USB_DEVICE_ID_PRIMAX_KEYBOARD) }, >> { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, >> USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) }, >> { 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 4a441a6..869911b 100644 >> --- a/drivers/hid/hid-ids.h >> +++ b/drivers/hid/hid-ids.h >> @@ -571,6 +571,9 @@ >> #define USB_VENDOR_ID_PI_ENGINEERING 0x05f3 >> #define USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL 0xff >> >> +#define USB_VENDOR_TYPE_PIXART 0x093a >> +#define USB_DEVICE_TYPE_PIXART_OPTICAL_TOUCH_SCREEN 0x8001 Please change _TYPE_ by _ID_ in both line to be consistent with other #define. >> + >> #define USB_VENDOR_ID_PLAYDOTCOM 0x0b43 >> #define USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII 0x0003 >> >> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c >> index f1c909f..2f338b1 100644 >> --- a/drivers/hid/hid-multitouch.c >> +++ b/drivers/hid/hid-multitouch.c >> @@ -722,6 +722,11 @@ static const struct hid_device_id mt_devices[] = { >> HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, >> USB_DEVICE_ID_PENMOUNT_PCI) }, >> >> + /* PixArt optical touch screen */ >> + { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, >> + HID_USB_DEVICE(USB_VENDOR_ID_PIXART, >> + USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN) }, >> + Do you __really__ need the DUAL here? I know that the MT_CLS_INRANGE_CONTACTNUMBER class does not exist, but if your company does not intend to do only dual touch screen, it may be better to remove the .maxcontact field (i.e. create MT_CLS_INRANGE_CONTACTNUMBER). We had the problem with eGalax devices recently: they were reported as dual touches by the kernel whereas some of them were 4 touches. Despite the line wrapping and this comment, the patch looks good. Cheers, Benjamin >> /* PixCir-based panels */ >> { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, >> HID_USB_DEVICE(USB_VENDOR_ID_HANVON, >> diff --git a/drivers/hid/usbhid/hid-quirks.c >> b/drivers/hid/usbhid/hid-quirks.c >> index 5028d60..99324eb 100644 >> --- a/drivers/hid/usbhid/hid-quirks.c >> +++ b/drivers/hid/usbhid/hid-quirks.c >> @@ -67,6 +67,7 @@ static const struct hid_blacklist { >> { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET }, >> { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET }, >> { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, >> + { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN, >> HID_QUIRK_NO_INIT_REPORTS }, >> { USB_VENDOR_ID_PRODIGE, USB_DEVICE_ID_PRODIGE_CORDLESS, >> HID_QUIRK_NOGET }, >> { USB_VENDOR_ID_QUANTA, >> USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NOGET }, >> { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, >> HID_QUIRK_NOGET }, >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-input" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe linux-input" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-12-06 17:55 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-12-06 10:12 [PATCH] Input: hid-multitouch- support PixArt optical touch screen aaron_tian 2011-12-06 11:27 ` JJ Ding 2011-12-06 17:55 ` Benjamin Tissoires
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.