Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp3204432imm; Tue, 29 May 2018 03:05:58 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpND8l3kgc7xCS6yLI86usLpErnpNnmGIHpJQMpGrnZxlpaNk6/3IWpTELLiFGvYheEoFfp X-Received: by 2002:a62:bd18:: with SMTP id a24-v6mr16368859pff.30.1527588358795; Tue, 29 May 2018 03:05:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527588358; cv=none; d=google.com; s=arc-20160816; b=Sbuzn4IgRRqicY/gco2Bh2yB1fVy+Zr4SsbBd8XyqSU5oHNaH2iJVLMy96omEQkM5Q +hCOMhjJdB3p5NS0O65/eFQVjMAamClMqvIVontS1UG4aZwHMXRDy2Ziou5gkSDwCU4m D0SkAdJ/SlJ9o51f2F5cn8/dCfepwNgBa20l3g80CERtQgC86a0r8g0SrX4yJc3SdNdL g2sR1dvx+wb4lEagldf3e//i08srXrRrKsWt8J6Y4e/aj0h3GtvBlXyMNtLoUrTbO3Oz jKrqM+mMwFJlBhCe1ODeN4nI20AK5UAnQi62D47hMn1WIX/ofEMVYls8PpMzY1oZda75 BLNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=n8LIeMhNsYcH8L25ABxbqEX1fRu/6cF+/wiF90bPUAo=; b=uWFpVr9KqCihqYTLTH8YrAGTDZchTYEpfA0WtxV6yhoyNNtjdPASitizLMVOC2uiBi BwVRYrdQYXCq+jeZTri/Z33cIHlYjgjCw6wnR7//W7IWKpETrJGTaO9gWwwivFQc8yRO K/R8WBmPLZj9zRCb797HmteUX4VvQbSy75TZNGs8Qp2UV7t+XQmY+xwd8d1AVXqflvRq 7R0ncSPaxkGuKCjBfZD/SEK/gL8yyXo74bu+myCEKGtosXgLT5kS9SteCyYRY37kHRO3 rB4f+dg6NMZOvCmiRszEZfVBpJ8eRBNusQKCYAVIf8+sUjbaCzouuc8/wYUvy14PPlOl DjIQ== 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 t5-v6si11611155plj.112.2018.05.29.03.05.44; Tue, 29 May 2018 03:05:58 -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 S933134AbeE2KDh (ORCPT + 99 others); Tue, 29 May 2018 06:03:37 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:57446 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932753AbeE2J6I (ORCPT ); Tue, 29 May 2018 05:58:08 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BDCCA402178A; Tue, 29 May 2018 09:58:07 +0000 (UTC) Received: from plouf.banquise.eu.com (ovpn-116-67.ams2.redhat.com [10.36.116.67]) by smtp.corp.redhat.com (Postfix) with ESMTP id EEB8411166E7; Tue, 29 May 2018 09:58:03 +0000 (UTC) From: Benjamin Tissoires To: Jiri Kosina , Dmitry Torokhov Cc: Mario.Limonciello@dell.com, Peter Hutterer , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Benjamin Tissoires Subject: [PATCH 0/9] Hid multitouch rewrite, support os system multi-axis devices Date: Tue, 29 May 2018 11:57:51 +0200 Message-Id: <20180529095800.13504-1-benjamin.tissoires@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Tue, 29 May 2018 09:58:07 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Tue, 29 May 2018 09:58:07 +0000 (UTC) for IP:'10.11.54.3' DOMAIN:'int-mx03.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'benjamin.tissoires@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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