linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] Support of dual pen/multitouch and new default for win 7 certified devices
@ 2012-11-23 15:31 Benjamin Tissoires
  2012-11-23 15:31 ` [PATCH 01/11] HID: hid-input factorize hid_input allocation Benjamin Tissoires
                   ` (11 more replies)
  0 siblings, 12 replies; 28+ messages in thread
From: Benjamin Tissoires @ 2012-11-23 15:31 UTC (permalink / raw)
  To: Benjamin Tissoires, Dmitry Torokhov, Henrik Rydberg, Jiri Kosina,
	Stephane Chatty, linux-input, linux-kernel

Hi Guys,

Last week, I received two new interesting devices report:
- N-trig win 8 certified pen/touch panel
- Samsung Nexio 42"


N-trig device
-------------
The first one is the origin of patches 1 to 6.
The multiouch part worked flawlessly with the win 8 patches I sent before,
but the pen part was completely ignored.
I could have used the quirk MULTI_INPUT, but by testing this quirk against
several devices report I have (https://github.com/bentiss/hid-devices), it
was a pain because some of them create 4 or 5 useless inputs.

I choose to allow the hid driver to control the creation of input devices, thus
patches 1 to 3.


Nexio device
------------
The second one was more problematic. Indeed, it was not working at all with the
current release of hid-multitouch. I had several ghost points, and any of the
available quirks worked.
I finaly found the trick, and this trick applies to all the win7 and win8
devices I saw so far (same url as before).

So I think I finally understood why the windows driver was better than us: it
first looks at the announced contact count, and treat only the right number. It
was so simple... and it works so well...

However, for us, I need to get this information from the raw_event because most
of the devices put the contact count field at the end of the report.

I also decided to change the default class as it is much more tolerant than the
previous one. I could have changed all the devices, but in the end, I changed
only those that get a benefit and that I could test.


Debug tool
----------
I was able to discover this trick only recently because I made a small C program
that allows me to replay the hid events through hid-multitouch. The code is
here: https://github.com/bentiss/hid-replay and you will need a kernel 3.6
to make it work (it requires uhid).

However, be careful, this program can be the root of many kernel oopses if the
targeted hid module tries to directly handle the usb or with any of the usbhid
function.
So, Henrik, I really need you to push your abstraction of usbhid in all hid
modules :)

Anyway, this tool can be very helpful to debug hid devices, that's why I share
it there... and also because I work for an open-source company :)

Happy reviewing.

Cheers,
Benjamin

Benjamin Tissoires (11):
  HID: hid-input factorize hid_input allocation
  HID: hid-input: simplify hid_input allocation and registration
  HID: hid-input: export hidinput_allocation function
  HID: hid-multitouch: creates and handle stylus report with dual-sensors
  HID: hid-multitouch: manually send sync event for pen input report
  HID: hid-multitouch: append " Pen" to the name of the stylus input
  HID: hid-multitouch: rename MT_CLS_DEFAULT into MT_CLS_NSMU
  HID: hid-multitouch: add support for Nexio 42" panel
  HID: hid-multitouch: check if ContactCount is given for default quirk
  HID: hid-multitouch: fix protocol for 3 devices
  HID: hid-multitouch: use MT_QUIRK_CONTACT_COUNT_ACCURATE for win 8 devices

 drivers/hid/hid-ids.h        |   3 +
 drivers/hid/hid-input.c      | 100 +++++++++++++---------
 drivers/hid/hid-multitouch.c | 198 +++++++++++++++++++++++++++++++++++--------
 include/linux/hid.h          |   1 +
 4 files changed, 229 insertions(+), 73 deletions(-)

-- 
1.8.0


^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2013-01-16  2:55 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-23 15:31 [PATCH 00/11] Support of dual pen/multitouch and new default for win 7 certified devices Benjamin Tissoires
2012-11-23 15:31 ` [PATCH 01/11] HID: hid-input factorize hid_input allocation Benjamin Tissoires
2012-11-27 19:45   ` Henrik Rydberg
2012-11-27 19:47   ` Jiri Kosina
2012-11-29 14:00   ` Jiri Kosina
2012-11-29 14:58     ` Benjamin Tissoires
2012-11-23 15:31 ` [PATCH 02/11] HID: hid-input: simplify hid_input allocation and registration Benjamin Tissoires
2012-11-27 20:14   ` Henrik Rydberg
2012-11-27 20:19     ` Jiri Kosina
2012-11-23 15:31 ` [PATCH 03/11] HID: hid-input: export hidinput_allocation function Benjamin Tissoires
2012-11-27 20:21   ` Henrik Rydberg
2012-11-29 15:31     ` Benjamin Tissoires
2012-12-02  8:08       ` Henrik Rydberg
2012-11-23 15:31 ` [PATCH 04/11] HID: hid-multitouch: creates and handle stylus report with dual-sensors Benjamin Tissoires
2012-11-27 20:25   ` Henrik Rydberg
2012-11-23 15:31 ` [PATCH 05/11] HID: hid-multitouch: manually send sync event for pen input report Benjamin Tissoires
2012-11-23 15:31 ` [PATCH 06/11] HID: hid-multitouch: append " Pen" to the name of the stylus input Benjamin Tissoires
2012-11-23 15:31 ` [PATCH 07/11] HID: hid-multitouch: rename MT_CLS_DEFAULT into MT_CLS_NSMU Benjamin Tissoires
2012-11-23 15:31 ` [PATCH 08/11] HID: hid-multitouch: add support for Nexio 42" panel Benjamin Tissoires
2012-11-26  8:37   ` Benjamin Tissoires
2012-11-23 15:31 ` [PATCH 09/11] HID: hid-multitouch: check if ContactCount is given for default quirk Benjamin Tissoires
2012-11-23 15:31 ` [PATCH 10/11] HID: hid-multitouch: fix protocol for 3 devices Benjamin Tissoires
2012-11-23 15:31 ` [PATCH 11/11] HID: hid-multitouch: use MT_QUIRK_CONTACT_COUNT_ACCURATE for win 8 devices Benjamin Tissoires
2013-01-03  9:50 ` [PATCH 00/11] Support of dual pen/multitouch and new default for win 7 certified devices Jiri Kosina
2013-01-03 11:34   ` Benjamin Tissoires
2013-01-06 20:03     ` Henrik Rydberg
2013-01-15 16:04       ` Jiri Kosina
2013-01-16  2:55         ` Benjamin Tissoires

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).