Hello Benjamin, I have a side question about your patchset: for the SUR40 touchscreen, we had a discussion a while ago about how to support the different object types which the firmware can detect (plain touch contact, printed token with ID, generic blob outline). Would the pass-through for the tool type allow us to differentiate those, once we define suitable tool types for each object class? Thanks & best regards, Florian On 29.05.2018 11:57, Benjamin Tissoires wrote: > 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(-) > -- SENT FROM MY DEC VT50 TERMINAL