linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/9] Hid multitouch rewrite, support os system multi-axis devices
@ 2018-05-29  9:57 Benjamin Tissoires
  2018-05-29  9:57 ` [PATCH 1/9] Input: mt - export MT_TOOL in input_mt_init_slot() Benjamin Tissoires
                   ` (9 more replies)
  0 siblings, 10 replies; 14+ messages in thread
From: Benjamin Tissoires @ 2018-05-29  9:57 UTC (permalink / raw)
  To: Jiri Kosina, Dmitry Torokhov
  Cc: Mario.Limonciello, Peter Hutterer, linux-input, linux-kernel,
	Benjamin Tissoires

Hi Jiri,

this heavy rewrite of hid-multitouch serves two main purposes:
- the first point is to enable the support of the Totem on the Dell Canvas 27.
  This new type of devices (System Multi Axis) is used by Microsoft to show
  a new circular menu that is used by the second hand while you interact with
  your preferred hand with your tool.
  I couldn't enable it before because hid-multitouch expected to have only one
  multitouch collection, and this device is exported as a separate multitouch
  collextion in the same HID device than the one containing the touch sensor.

- the second point is to streamline the process of the multitouch events. We
  used to temporary store the events in a struct as they come in, and then do
  the processing on the cache we just made. When doing the processing was also
  not very clear. This made that even if hid-multitouch should IMO be merged in
  hid-core, we couldn't.

  The new processing of the events here adds a preparsing of the report in
  one HID collection (application usage), and from now on, the processing
  of the report is cleaner IMO. I still haven't merged hid-mt into hid-core,
  because even if I wrote a bunch of unit tests trying to not break any devices,
  we are not protected from a weird thing that magically happened before but is
  now broken.

I must say that when I worked on the tests, I came to realise that some legacy
Win7 devices were better handled now. Initially I thought my new code broke them
but comparing the outputs from https://github.com/bentiss/hid-devices before
and after the changes, the new changes are closer to what I would expect by
looking at the raw HID events.

I also included 2 patches to enable the Surface Dial. It's a BLE device similar
to the Totem from Dell, except that you can buy it for roughly $80 instead of
$1800 for the Canvas.


Dmitry, 2 patches are of interest for you:
- 1/9 Input: mt - export MT_TOOL in input_mt_init_slot()
- 7/9 HID: input: enable Totem on the Dell Canvas 27

The second one exports a new MT_TOOL. In theory, I think patch 1/9 could be
carried through your tree but it'll be better to have the full series applied
at once.

Cheers,
Benjamin

Benjamin Tissoires (9):
  Input: mt - export MT_TOOL in input_mt_init_slot()
  HID: multitouch: make sure the static list of class is not changed
  HID: multitouch: Store per collection multitouch data
  HID: multitouch: store a per application quirks value
  HID: multitouch: ditch mt_report_id
  HID: multitouch: remove one copy of values
  HID: input: enable Totem on the Dell Canvas 27
  HID: core: do not upper bound the collection stack
  HID: microsoft: support the Surface Dial

 drivers/hid/hid-core.c                   |  17 +-
 drivers/hid/hid-input.c                  |   3 +
 drivers/hid/hid-microsoft.c              |  49 +-
 drivers/hid/hid-multitouch.c             | 941 ++++++++++++++++++-------------
 drivers/input/input-mt.c                 |   1 +
 drivers/input/rmi4/rmi_2d_sensor.c       |   2 -
 drivers/input/touchscreen/atmel_mxt_ts.c |   2 -
 drivers/input/touchscreen/hideep.c       |   2 -
 drivers/input/touchscreen/wacom_w8001.c  |   2 -
 include/linux/hid.h                      |  15 +-
 include/uapi/linux/input.h               |   3 +-
 11 files changed, 616 insertions(+), 421 deletions(-)

-- 
2.14.3

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

end of thread, other threads:[~2018-05-30  8:53 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-29  9:57 [PATCH 0/9] Hid multitouch rewrite, support os system multi-axis devices Benjamin Tissoires
2018-05-29  9:57 ` [PATCH 1/9] Input: mt - export MT_TOOL in input_mt_init_slot() Benjamin Tissoires
2018-05-29 18:21   ` Dmitry Torokhov
2018-05-30  8:53     ` Benjamin Tissoires
2018-05-29  9:57 ` [PATCH 2/9] HID: multitouch: make sure the static list of class is not changed Benjamin Tissoires
2018-05-29  9:57 ` [PATCH 3/9] HID: multitouch: Store per collection multitouch data Benjamin Tissoires
2018-05-29  9:57 ` [PATCH 4/9] HID: multitouch: store a per application quirks value Benjamin Tissoires
2018-05-29  9:57 ` [PATCH 5/9] HID: multitouch: ditch mt_report_id Benjamin Tissoires
2018-05-29  9:57 ` [PATCH 6/9] HID: multitouch: remove one copy of values Benjamin Tissoires
2018-05-29  9:57 ` [PATCH 7/9] HID: input: enable Totem on the Dell Canvas 27 Benjamin Tissoires
2018-05-29  9:57 ` [PATCH 8/9] HID: core: do not upper bound the collection stack Benjamin Tissoires
2018-05-29  9:58 ` [PATCH 9/9] HID: microsoft: support the Surface Dial Benjamin Tissoires
2018-05-29 10:38 ` [PATCH 0/9] Hid multitouch rewrite, support os system multi-axis devices Florian Echtler
2018-05-29 15:06   ` 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).