Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp3490234imm; Tue, 29 May 2018 08:07:29 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoDj+kS71OnvLzNk9CHnnGgb0arP//QQQXIvu6huqOnwNPYSzmC0DCOlXxHzgqmb6pZa+Jg X-Received: by 2002:a17:902:6046:: with SMTP id a6-v6mr17874900plt.59.1527606449003; Tue, 29 May 2018 08:07:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527606448; cv=none; d=google.com; s=arc-20160816; b=cFG2VveSZpuGgRDLbzMkV95I8snIRtheAAd3qsB1Bq8GWWt4VgwebtzzfSrfjTWzBa 89IB2qPinHB2iuw4rNMy2wq1bMspYUNHK9hQ2aAoZH+bHqd0WHzOY1ktQQ3lLe8OKmmU mTBojo54W5CdtIjCD4xGSm8VAIVNK3bcbnnC8oU0vaBieHAPWQtvwbwFSkV4RpLEO2ik CsLgouSvaJeAWAy2oQyoOzFx2vOkeP+o3Ockz0K1WagEqZtv6t5VK/TZVlKs+to4auT9 NZS5pztl1M31VOj/mzojM/RlzgCh2rLG2z4XjcJA+D6ROwyk75XYU4GUCE28sMAWxtkq 0yFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:arc-authentication-results; bh=FjstS7ekORwh++3b/SNYXJcRNeB9/iaX2MxVDwxTtPc=; b=bpzVlOaL5t3VTU47FzP8VfT9JUxeEMGUNE91KTjT5wNjWtDmS9zVDytdJvFCESPv+R 3DgSScJNnzijiPZ9pCu5SbykKtkgla+FtFyMpKF1j3FlL6OQYwD6jemjspF8V8pEDVof GgBsKJKE1Dkt8HvrGHdtTqzas9bsxG5FUZO2Jd5r3PUM16JmB49uowwyc2/5vYZCgj2C SEu6f+3CcxDlGPU4OUlZuborfAWN53DOcQCUrwTuN39xjAGfyWfYijWSleJNMIubpBGc De1tkdB7f7LxkDKiKGHHXfV3u3TLF/NmC0oeyUX0Sb2cs5NecFvY8RIG/FU1b5S/CFGe EasA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x23-v6si9587775pfe.318.2018.05.29.08.07.14; Tue, 29 May 2018 08:07:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936833AbeE2PGv (ORCPT + 99 others); Tue, 29 May 2018 11:06:51 -0400 Received: from mail-qk0-f196.google.com ([209.85.220.196]:33000 "EHLO mail-qk0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935282AbeE2PGg (ORCPT ); Tue, 29 May 2018 11:06:36 -0400 Received: by mail-qk0-f196.google.com with SMTP id h7-v6so4574413qkm.0 for ; Tue, 29 May 2018 08:06:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=FjstS7ekORwh++3b/SNYXJcRNeB9/iaX2MxVDwxTtPc=; b=DrZL8vGUheaXmBCApZEzh7lQ4DuF4aX9eMBS0cXAMNuVNPWwmjwjIG8F/udPHAeV1G 43bqeNWmXkQgydvGMVo1zNkAq1Fkg6O0FEOcQSQrwsX63DIAFcGnm/N+Rbu2w23S6dtO aRvFd/WSMDKa+m3AVbBhToddtOEL2GzWiZdYsmwk1OU4ATKS3fMX8UMbhk0UiLbNxGNg Egf6hGM1ychjvypNJl10w+/GxTTxN0pqClAv3lMmOD9Vtk3/KTO6WvXvTWKtMvwYbd3N YdStKXDKuzLXYrng2pjmIMy1U93Iu/tjRrZJ/e00hfkJODORCKwp21mfbBp39d3nuuUy F+WQ== X-Gm-Message-State: ALKqPwdDl2eDw7AcWDAqagmhRoCqBwdEtoBZ69+INtSIscaf5fCCqbJ0 orQypCj5d9mkU39325ToSsniWBN5DFBbmanjfVWjTw== X-Received: by 2002:a37:8484:: with SMTP id g126-v6mr15972367qkd.273.1527606395154; Tue, 29 May 2018 08:06:35 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:aed:2bc7:0:0:0:0:0 with HTTP; Tue, 29 May 2018 08:06:34 -0700 (PDT) In-Reply-To: References: <20180529095800.13504-1-benjamin.tissoires@redhat.com> From: Benjamin Tissoires Date: Tue, 29 May 2018 17:06:34 +0200 Message-ID: Subject: Re: [PATCH 0/9] Hid multitouch rewrite, support os system multi-axis devices To: Florian Echtler Cc: Jiri Kosina , Dmitry Torokhov , Mario.Limonciello@dell.com, Peter Hutterer , "open list:HID CORE LAYER" , lkml Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Florian, On Tue, May 29, 2018 at 12:38 PM, Florian Echtler wrote: > 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). Plain touch contact should already be reported by MT_TOOL_FINGER. Printed token with ID seems challenging as even if it is a different tool (not a finger) I am not sure we can convey which ID is which. And generic blob is even worse because we need a tracking ID that would regroup the various touch points, and it doesn't reflect a particular tool. > Would the pass-through for the tool type allow us to differentiate > those, once we define suitable tool types for each object class? I am honestly puzzled by this and can't do much for you here. Could you please re-tell us the specific use cases, so we can think about the solutions? Cheers, Benjamin > > 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 >