From nobody Sat May 4 22:43:31 2024 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail(p=none dis=none) header.from=nabijaczleweli.xyz ARC-Seal: i=1; a=rsa-sha256; t=1615225378; cv=none; d=zohomail.com; s=zohoarc; b=k0omcU4g6CS5E4byLmLO/Z45AD0ptJ/1qAJ6lVM0q6ez6KFcK5kcWm6AdGPyuji0ofMhTKtYljCg5mOvWGVfz2O9NXHvepaJY12k3wVSY+PrxCWtRPYp/MwQV9ubJylLQqKHAGjFvVL5L276/zskMmci7ym+r0Ff1tsxNsQ2O/k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615225378; h=Content-Type:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=17b52T8HRkFjKwDKX/LY3HVBmS8/8yQAj1GrRvpb8gs=; b=TvqnQJyg5zaz1sRQgXIGQi69B3g6RsAsv/bNtevMgmons415JFIG9p/C+JFrUZuKDUu/wPDGxfJWjy1cskETuTb/gH8YFRm4q8JjZ1zpUrKZC3K21X3ox1wynzdCZLzXKeEYGg/8WkXM7ZE/KMdMjBH6lrD1FFComqtDXEkExuU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1615225378615473.349018859108; Mon, 8 Mar 2021 09:42:58 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230412AbhCHRmR (ORCPT ); Mon, 8 Mar 2021 12:42:17 -0500 Received: from [139.28.40.42] ([139.28.40.42]:54258 "EHLO tarta.nabijaczleweli.xyz" rhost-flags-FAIL-FAIL-OK-OK) by vger.kernel.org with ESMTP id S229813AbhCHRmF (ORCPT ); Mon, 8 Mar 2021 12:42:05 -0500 Received: from tarta.nabijaczleweli.xyz (unknown [192.168.1.250]) by tarta.nabijaczleweli.xyz (Postfix) with ESMTPSA id 78CBF360009; Mon, 8 Mar 2021 18:42:04 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nabijaczleweli.xyz; s=202006; t=1615225324; bh=YnOwl8+70YJN74o6JcKP3I+Z0kVB3n4CoIz0cKVjjB4=; h=Date:From:Cc:Subject:References:In-Reply-To:From; b=bOJP0EJmXK7FTiFBUBMaJTRDlbwQBsWkQfRJyMGY1/fBQW/eZIK5G6RF+mvEeuAOl DpwK6GLuy94+v9H9mDVcX3ycSwHBXdPSUIBxMRz3UKAYKbSQp5nua88MD0c/J50fBQ A56xmiWk9icDIWBNcHzJaFDzOmxeDau8IWJKk1VV9SIIoHK4JO8+Qt/MZuEK8gxT/G 5D1ALmtVgoml6jT1Lg9FpNCJnJ5ypE7e7G3VBnGEW5oiDE3/z7F4FJNZGoZBs8IYab Cn1Y/DnVkEnWiGF6mkF3fQc6j5FjVPQinPVo6d9ogMC6iivWiF4g63e/T611gMOyx5 Vauh6lSR0lpcA== Date: Mon, 8 Mar 2021 18:42:03 +0100 From: Ahelenia =?utf-8?Q?Ziemia=C5=84ska?= Cc: Benjamin Tissoires , Peter Hutterer , Jiri Kosina , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/4] HID: multitouch: require Finger field to mark Win8 reports as MT Message-ID: <019fd182fe7358b14a2f9427572635e518cdb868.1615224800.git.nabijaczleweli@nabijaczleweli.xyz> References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="42d7o7g7hk3f6ppw" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20210205 To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: fail (Header signature does not verify) --42d7o7g7hk3f6ppw Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This effectively changes collection_is_mt from contact ID in report->field to (device is Win8 =3D> collection is finger) && contact ID in report->field Some devices erroneously report Pen for fingers, and Win8 stylus-on-touchscreen devices report contact ID, but mark the accompanying touchscreen device's collection correctly Signed-off-by: Ahelenia Ziemia=C5=84ska --- drivers/hid/hid-multitouch.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index 8429ebe7097e..8580ace596c2 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -604,9 +604,13 @@ static struct mt_report_data *mt_allocate_report_data(= struct mt_device *td, if (!(HID_MAIN_ITEM_VARIABLE & field->flags)) continue; =20 - for (n =3D 0; n < field->report_count; n++) { - if (field->usage[n].hid =3D=3D HID_DG_CONTACTID) - rdata->is_mt_collection =3D true; + if (field->logical =3D=3D HID_DG_FINGER || td->hdev->group !=3D HID_GROU= P_MULTITOUCH_WIN_8) { + for (n =3D 0; n < field->report_count; n++) { + if (field->usage[n].hid =3D=3D HID_DG_CONTACTID) { + rdata->is_mt_collection =3D true; + break; + } + } } } =20 --=20 2.20.1 --42d7o7g7hk3f6ppw Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfWlHToQCjFzAxEFjvP0LAY0mWPEFAmBGYesACgkQvP0LAY0m WPGBtA//QR2l3O2LKgDBxp63HTpF1uzjT082nbZKdP5iAeVjK4++VBfHUthy9Vq/ 7ZCDEohhsS+TkAWF99r72bCJg3gRTpxORDEeHZNA6ZicqyCzOHxoIJTV/SP7MIXL CQlATX6WopBXuDzfB9t0uvsE5awOHdOckfgDRz/X/BklgFsk+3p5cnET2gpKE7Gb 5pq5GHTaPh9dDX3eLRF8GFuRdHDhNIp9futXhFx6jZV8nEkK1BiLuSluIEJyYPpJ I1naSpa2ihK2clwzfIpXE9zNS8qjAYSgpqQNp2hNaSvnWgYvb5vTkrppDFxmoVfR ZOQoCRunLoYNyqEfyLYmImFqizJ8oiBAsgy0Ws7tQVmAmWHkOP5lYOCHsQQbFbQL Nx2yo+Klqkjh2jg58AyVyydRujcq1wQwllBs9xES0a0XaGf+AxXVymt1fMX74FvU AwGLYrBtngJGw0Ckfl8z9CIba9vkJzkDP1CkWx3WGjCXDlRO415cOznVNYSkrH2O ICWIN0oo8RBnzzWlD3VfHOHqoWDG4e0pmvWb+GlTKpI0LJHRKlxqLtHSpnKL8e99 Ek/A1nelutojh2ZfoG2VOU3iuokPxik/GnnTaRILKcrH7l4JmmjzXgwRxktRH+tw 692e31NdJcGaPCSD9ct342mCr0CoqhKn1jVGzQGLqWln0xMLiK4= =ogHs -----END PGP SIGNATURE----- --42d7o7g7hk3f6ppw-- From nobody Sat May 4 22:43:31 2024 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail(p=none dis=none) header.from=nabijaczleweli.xyz ARC-Seal: i=1; a=rsa-sha256; t=1615225377; cv=none; d=zohomail.com; s=zohoarc; b=RLTQmKJZsOBLgHx2SxIrY9Z0/v9Bo62KIZMZT2nN0KzTDxQKhTUX5Bpasl3P5MyT/oC9RnVdyiBIBe8V76HDFNwdWPhCHm4DhFtclr+sCLwaiFdr61iB/jfxXYQaPMFMyBK/PQ+tBepu3coh94+QrGfvOElFSHdLe09Lj2QkSQI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615225377; h=Content-Type:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=lZ59y2uTrjvPLs3U3MGnEEy/CEmhL5INcW3Mmkm2UxI=; b=Erv4+Y6zj1BKiqg61/+kHODkUoTgMNGS47dT4BNncYqbEgacRgHo1b0DKzQOifR+LK9IQI/T1OefuZSiuimuLl2NCuZ0yVHLgL/RdlMVb1dct3IC9n4JjlcLb/L0x9J58CG3LYddnMcPx8Nvz7V0wmPwYwt+leyWyl6abXsfrvA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1615225377609868.0080833074268; Mon, 8 Mar 2021 09:42:57 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230457AbhCHRmS (ORCPT ); Mon, 8 Mar 2021 12:42:18 -0500 Received: from [139.28.40.42] ([139.28.40.42]:54264 "EHLO tarta.nabijaczleweli.xyz" rhost-flags-FAIL-FAIL-OK-OK) by vger.kernel.org with ESMTP id S230002AbhCHRmK (ORCPT ); Mon, 8 Mar 2021 12:42:10 -0500 Received: from tarta.nabijaczleweli.xyz (unknown [192.168.1.250]) by tarta.nabijaczleweli.xyz (Postfix) with ESMTPSA id 68EB6360009; Mon, 8 Mar 2021 18:42:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nabijaczleweli.xyz; s=202006; t=1615225329; bh=E2cljsSdwKNhgTqJ7vTZuMRapHpY07TKEviawUFQTN4=; h=Date:From:Cc:Subject:References:In-Reply-To:From; b=eMgvfMUbaqR2ghNitae983xZnm+7vCXZaeBGrIkdeRGXiuyzOprXfllIMRZlvpa7x gJIgcjpMJabPZY11CPXlaMptEb1BUQJfH6i4lcE1Xyr1EIQ+PMf08/y2UbyCVAWcIS 5SNsO+HSjec/5tIbxJ5wAYg4IaHotHom7p+yboI1AqGpLXAi0DdgRAZUi722HDrY0L 1Aj5CidgPZL4EBKhkrCe7ZmZ/4OIJGOuk72Nqq/gGaxDg96fCEIxsSMvSissxOxwIc xabHxSIQBAJZqEalF3CaVO/zxXaTyZ+GkWJnyOkTNQNBKXO7cF5rgcVP412QdZFVzy 2j//KVI+IG+MQ== Date: Mon, 8 Mar 2021 18:42:08 +0100 From: Ahelenia =?utf-8?Q?Ziemia=C5=84ska?= Cc: Benjamin Tissoires , Peter Hutterer , Jiri Kosina , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/4] HID: multitouch: set Stylus suffix for Stylus-application devices, too Message-ID: References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="jao4bsaa26ioyfu6" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20210205 To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: fail (Header signature does not verify) --jao4bsaa26ioyfu6 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This re-adds the suffix to Win8 stylus-on-touchscreen devices, now that they aren't erroneously marked as MT Signed-off-by: Ahelenia Ziemia=C5=84ska --- drivers/hid/hid-multitouch.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index 8580ace596c2..e5a3704b9fe8 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -1580,13 +1580,13 @@ static int mt_input_configured(struct hid_device *h= dev, struct hid_input *hi) /* we do not set suffix =3D "Touchscreen" */ hi->input->name =3D hdev->name; break; - case HID_DG_STYLUS: - /* force BTN_STYLUS to allow tablet matching in udev */ - __set_bit(BTN_STYLUS, hi->input->keybit); - break; case HID_VD_ASUS_CUSTOM_MEDIA_KEYS: suffix =3D "Custom Media Keys"; break; + case HID_DG_STYLUS: + /* force BTN_STYLUS to allow tablet matching in udev */ + __set_bit(BTN_STYLUS, hi->input->keybit); + fallthrough; case HID_DG_PEN: suffix =3D "Stylus"; break; --=20 2.20.1 --jao4bsaa26ioyfu6 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfWlHToQCjFzAxEFjvP0LAY0mWPEFAmBGYfAACgkQvP0LAY0m WPEHBg//dj15rXXWbyFR1jwbvHxoQvzSoKfCWFXvBxiTG92hHpY7wJHuFyqyz1sB +3mAByN2va171eqEmuPEplf44QuwxRwaVJFsTCG8uSRwaVkk2lvUWdn3mtB4U3i1 ML218VI8liRlnxmLAqasmcA37ILk3vEsuo8hU4hwFUZ6iS64mKnEXknCB/voka4N EM/UoZC1kAQ9gcLjbrEpNpJFYqPozziI3ljtyN3dEZ1ZFu8+bJJ3Y+FL4O344Hsv 5LFtO3zp7iyN5NSXtjQZTlCo5qhhwgtdzkEeVozwSomXzrdxBcZodpKixIdH3q/m oM+bzQTBipM3H79bdPiceUuFakZfifVwqkZsnGqjnrtbvWhcyAmwbcqdPXs1q1RR BDz7+hElZMbuo5q8jSY84VkjcjcXgfEvwwtAER94PbYX3bXaFmirp5dSNshXrGCs ITDN6q1XCe5dge/GpM0GDDjD8Wk8+9kp+z7T6mUrQgY17luWyJzdT/VuLpLU+Y6g IounbqnxQttz8WNVj1SLawuXCc9XQlU5/7/FzaydRUHcAybH4VDm6kIvYYdNMVE+ AuuAwfsZ/5FAaDSmUYAV5F5dJ/SSxtX9yOuUqDgSVW7fS9YZXBt3oMBrIl2sDRgb yPE7bxjKa7IcHu9g3ZOHpI66hslMoMlHASGG9WBhD/C71M8Te04= =QJmW -----END PGP SIGNATURE----- --jao4bsaa26ioyfu6-- From nobody Sat May 4 22:43:31 2024 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail(p=none dis=none) header.from=nabijaczleweli.xyz ARC-Seal: i=1; a=rsa-sha256; t=1615225378; cv=none; d=zohomail.com; s=zohoarc; b=FF3328ijvbwiTQiroBDLkm3lFIjjNm+ho2XlFoX+Ig0lO5vf4tjECvU/35ca0JXcGtDX3Cmc5PxnPNbcNn4+9bhYgZ5/4EQCr4WIyGOwh9+VW29dcn/YJBbpxAZcWcbkRdH2dBRXFsWvMwYNYnU8+N2/nDq1t7wgDCfhjE65Ek4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615225378; h=Content-Type:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=ROGI9oHP/i9FgYSqfIjpBjQzHhfLZKdX+CsVcqiC4Q4=; b=XO2WoqmxNxhSaSNacpNCbOQAsxcASgTpdoAf0G/eAz/eFda3Q2p6tQ4vHAD9IRKeYzrUnh22uBVzrVaaBOSz4HPcIM0OkawVtJKpWC1B1J5AIStvAo8FMfIKqwcFuSAuvitv7b7oqx0YAsq73IZ5DIMpR+7wrmMafqpXtRzHStc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 16152253781101001.2693257185608; Mon, 8 Mar 2021 09:42:58 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230490AbhCHRmS (ORCPT ); Mon, 8 Mar 2021 12:42:18 -0500 Received: from [139.28.40.42] ([139.28.40.42]:54276 "EHLO tarta.nabijaczleweli.xyz" rhost-flags-FAIL-FAIL-OK-OK) by vger.kernel.org with ESMTP id S230050AbhCHRmP (ORCPT ); Mon, 8 Mar 2021 12:42:15 -0500 Received: from tarta.nabijaczleweli.xyz (unknown [192.168.1.250]) by tarta.nabijaczleweli.xyz (Postfix) with ESMTPSA id 5F75C360009; Mon, 8 Mar 2021 18:42:14 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nabijaczleweli.xyz; s=202006; t=1615225334; bh=BYaCJkUhOQoa5P9mbJc0BTz9QByHDKu5+BcbBE3FaPk=; h=Date:From:Cc:Subject:References:In-Reply-To:From; b=P6DptIHR+1gLikE+wsuxmKyIwCg+FhMgWgKfcv5jdmRH8XRFd9aKffS8xEygcqYtT Vc28+aZrHepEg9lFeXk/xy5GVj7EtR0DZ3Vz+neOZB57iEsknpXaR3zNWr/EgxiyO7 IpzoiTuUBnm/Y0pH0kV4xRh24t5GbX9S61lzh2X+IIoyioTG+MoKGF/nKT8MQ94ju/ 9fcLO2/BU9efkfCe8yJV3pAq1KfAJ0ZaEgvkOhpwaX2WBLwkm/h8DC0RIYDtGvztQH E7jIdJN5EjDZYjQH8ZZz31HyTk/nk//D033PcLHevFWyW40raLvEpfgdVYeIJFOcRY Pew0GQeju0knQ== Date: Mon, 8 Mar 2021 18:42:13 +0100 From: Ahelenia =?utf-8?Q?Ziemia=C5=84ska?= Cc: Benjamin Tissoires , Peter Hutterer , Jiri Kosina , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/4] HID: input: replace outdated HID numbers+comments with macros Message-ID: <78bb4e254edc8a7c99b5e9991e84145dbe7407fb.1615224800.git.nabijaczleweli@nabijaczleweli.xyz> References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="u2xbho7rlrlkrtzk" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20210205 To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: fail (Header signature does not verify) --u2xbho7rlrlkrtzk Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" These were untouched since 2.3.99-pre3, and the explanatory comment for HID_DG_TIPPRESSURE is TipPressure in other places Signed-off-by: Ahelenia Ziemia=C5=84ska --- drivers/hid/hid-input.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index f23027d2795b..a5ba92978473 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c @@ -1301,12 +1301,12 @@ void hidinput_hid_event(struct hid_device *hid, str= uct hid_field *field, struct return; } =20 - if (usage->hid =3D=3D (HID_UP_DIGITIZER | 0x003c)) { /* Invert */ + if (usage->hid =3D=3D HID_DG_INVERT) { *quirks =3D value ? (*quirks | HID_QUIRK_INVERT) : (*quirks & ~HID_QUIRK= _INVERT); return; } =20 - if (usage->hid =3D=3D (HID_UP_DIGITIZER | 0x0032)) { /* InRange */ + if (usage->hid =3D=3D HID_DG_INRANGE) { if (value) { input_event(input, usage->type, (*quirks & HID_QUIRK_INVERT) ? BTN_TOOL= _RUBBER : usage->code, 1); return; @@ -1316,7 +1316,7 @@ void hidinput_hid_event(struct hid_device *hid, struc= t hid_field *field, struct return; } =20 - if (usage->hid =3D=3D (HID_UP_DIGITIZER | 0x0030) && (*quirks & HID_QUIRK= _NOTOUCH)) { /* Pressure */ + if (usage->hid =3D=3D HID_DG_TIPPRESSURE && (*quirks & HID_QUIRK_NOTOUCH)= ) { int a =3D field->logical_minimum; int b =3D field->logical_maximum; input_event(input, EV_KEY, BTN_TOUCH, value > a + ((b - a) >> 3)); --=20 2.20.1 --u2xbho7rlrlkrtzk Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfWlHToQCjFzAxEFjvP0LAY0mWPEFAmBGYfQACgkQvP0LAY0m WPEyXw//Ti/KMtRtiINBuS04q0QkWrb05mM4SMiVkJCDAbPSuI16LUyeHkdR7r7w Vw3OsbFBcPXtVnYPcSjjwa3HfsgvVc/fBpPCx+Sr5KJaA1Bub9BFAJtSNINCtbjE b61q45k79lELEgViEtrtWzXZ1S4LmH5gqdrYHoh8GXt+KLZcNPb7XSeSwjiG19BC uDRMbMavSpAmuYGvQGnPtskOQksctRD5h87W72J+OjZP+DfZIWYT3KTcDmU+4J4o +98p50gbLAWS/6v2jkoAT9PG1VOQms8eM0uV+kEetEEl+r2Zb73pSQL5kp6rmzoT 8gtu62CQU0tApy9/WXgZF0jk04mnH2D8EbtkuqscjQ8hts0WWls490FJyd15AC3/ 6kQP7TablzHR9qpN/nXIupz5b2yoBRiavbThinTN19gVnbouR6AdKgFBNw0KyN1q KD2cbbn/QcwlOhjb1M7Vuu8oNCxTZKDQ5oRj4Veaj1ftAnZEJI3EKgQ9pEySnKtG GpFRGhJAQTQIArJvisot/ikdfyp0Gekx/TVB+DMW+7StC08CP24ToRlY7T3nuqqQ CsA+E3lHSMkt63+2L4EiyTUApwaufgfGUwHgRH02MXF4Wo2SO81dloVYvjXIE9fv cmVyY2yvJOfeUFZweWUZ0irbVPoybC0nbX59Btda8ULql2RqczY= =iWir -----END PGP SIGNATURE----- --u2xbho7rlrlkrtzk-- From nobody Sat May 4 22:43:31 2024 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail(p=none dis=none) header.from=nabijaczleweli.xyz ARC-Seal: i=1; a=rsa-sha256; t=1615225400; cv=none; d=zohomail.com; s=zohoarc; b=TkXQ64kryT2opwo3oWlMXuvbHPsjP5q98STV/Zv6tY+sNIk94+BINMKU7xxxXTlkGY9aJICSIWQh1Awf7gkEQdjxsgM0MKTWHdEocy3maSX399SUbhLaggvLjWZ7oTmAoqixynmEucHMeRBvMkjLFZnB83juJTNQFyT5N7BRcZI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615225400; h=Content-Type:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=8nRjclBMYGG4f6jWGZS95zWYhVSlxIrvSCPg0ofndnM=; b=ebR8ytChpoIT+2veUkDi7/JCijIo/fhbWIHF2n/ug6tjGC8eyf+qipkJlSrJC7UW7UyyzVsvVueficTOMcPUMf/ya4Xb7Z0Vxiqt/JKCYUfoPGZVbPsYC0Gike/iVDp7oDV4+l2HblmqxTG6txFN4ka+AISrrWzDDK9kg8KCycA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1615225400936303.79444167824784; Mon, 8 Mar 2021 09:43:20 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230517AbhCHRmv (ORCPT ); Mon, 8 Mar 2021 12:42:51 -0500 Received: from [139.28.40.42] ([139.28.40.42]:54286 "EHLO tarta.nabijaczleweli.xyz" rhost-flags-FAIL-FAIL-OK-OK) by vger.kernel.org with ESMTP id S230050AbhCHRmV (ORCPT ); Mon, 8 Mar 2021 12:42:21 -0500 Received: from tarta.nabijaczleweli.xyz (unknown [192.168.1.250]) by tarta.nabijaczleweli.xyz (Postfix) with ESMTPSA id 7CA523602D8; Mon, 8 Mar 2021 18:42:19 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nabijaczleweli.xyz; s=202006; t=1615225339; bh=O3opi9rvyEpgs9nlMtb3A5XUwC6OHkH6ahCapGdL/hs=; h=Date:From:Cc:Subject:References:In-Reply-To:From; b=SvwdSa3yVVW9ZP1ubMdmgBQmmi+ZhxESnXAc6EpAR2uqicG0VC850oEvsoimg9QXf lM4Y2S+xcTVYVjAoqCzfCyRIJ+9vVOb46onYgcoKyJFL0kxQOe1oIgacJVDr6fScFJ OKiEjbs+nF/CL0U241YHYE91ZEkmfzAe5nif4FGNGmZkqh0aE00g2YYsa2ADammlot GUIk66QxtRIWAunV8NMrFqhpoMO2JwW4e5/Pdn2L47f3cWmTp6l5YDgcohRVPPUUAl CPMB69qkBaa1zh2sPXbROOZ2Huty3/jYnpR/DL6CGr3draWJce1zlJ2vkFYTBHMyr6 M7QQesQhqmtTg== Date: Mon, 8 Mar 2021 18:42:18 +0100 From: Ahelenia =?utf-8?Q?Ziemia=C5=84ska?= Cc: Benjamin Tissoires , Peter Hutterer , Jiri Kosina , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/4] HID: input: work around Win8 stylus-on-touchscreen reporting Message-ID: <2ca91ac7cf92e3048a236db3cd519f04e12c1e61.1615224800.git.nabijaczleweli@nabijaczleweli.xyz> References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="nuuyouwigtdbc5q2" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20210205 To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: fail (Header signature does not verify) --nuuyouwigtdbc5q2 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" With this, these devices now behave as tablets as expected by userspace The search in hidinput_is_win8_touching() terminates at f=3D0, u=3D0 on Goodix screens (27C6:0111, 27C6:0113), but I expect it to have negligible impact on devices that don't have TipSwitch as the first report as well Signed-off-by: Ahelenia Ziemia=C5=84ska --- Notes: changes in v2: * hidinput_fixup_win8_inrange() became hidinput_is_win8_touching() * BarrelSwitch now anded with TipSwitch drivers/hid/hid-input.c | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index a5ba92978473..aee1f1283c1d 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c @@ -1273,6 +1273,42 @@ static void hidinput_handle_scroll(struct hid_usage = *usage, input_event(input, EV_REL, usage->code, hi_res); } =20 +/* + * Win8 tablet stylus devices send, in order: + * HID_DG_TIPSWITCH (BTN_TOUCH) + * HID_DG_INVERT (BTN_TOOL_RUBBER) + * HID_DG_ERASER (BTN_TOUCH) + * HID_DG_INRANGE (BTN_TOOL_PEN) + * + * For each of these states: + * hover : INRANGE + * touching : TIPSWITCH + * hover+2 : INVERT INRANGE + * touching+2: ERASER INRANGE + * + * Which means we'd send BTN_TOUCH=3D0 + BTN_TOOL_PEN=3D1 on proximity, + * then BTN_TOUCH=3D1 and BTN_TOOL_PEN=3D0 in consecutive groups when touc= hed, + * indicating the stylus leaving the screen as soon as the two meet. + * + * Additionally, HID_DG_BARRELSWITCH corresponds directly to the button, + * regardless of the tip switch, making it borderline impossible to use pr= ecisely. + */ +static bool hidinput_is_win8_touching(struct hid_device *hid, struct hid_f= ield *field) +{ + unsigned f, u; + struct hid_field *rfield; + + for (f =3D 0; f < field->report->maxfield; ++f) { + rfield =3D field->report->field[f]; + for (u =3D 0; u < rfield->maxusage; ++u) { + if (rfield->usage[u].hid =3D=3D HID_DG_TIPSWITCH) + return rfield->value[u]; + } + } + + return false; +} + void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, s= truct hid_usage *usage, __s32 value) { struct input_dev *input; @@ -1306,7 +1342,13 @@ void hidinput_hid_event(struct hid_device *hid, stru= ct hid_field *field, struct return; } =20 + if (usage->hid =3D=3D HID_DG_ERASER && value) + *quirks |=3D HID_QUIRK_INVERT; + if (usage->hid =3D=3D HID_DG_INRANGE) { + if (hid->group =3D=3D HID_GROUP_MULTITOUCH_WIN_8) + value =3D value || hidinput_is_win8_touching(hid, field); + if (value) { input_event(input, usage->type, (*quirks & HID_QUIRK_INVERT) ? BTN_TOOL= _RUBBER : usage->code, 1); return; @@ -1322,6 +1364,12 @@ void hidinput_hid_event(struct hid_device *hid, stru= ct hid_field *field, struct input_event(input, EV_KEY, BTN_TOUCH, value > a + ((b - a) >> 3)); } =20 + if (usage->hid =3D=3D HID_DG_BARRELSWITCH && hid->group =3D=3D HID_GROUP_= MULTITOUCH_WIN_8) { + value =3D value && hidinput_is_win8_touching(hid, field); + input_event(input, usage->type, usage->code, value); + return; + } + if (usage->hid =3D=3D (HID_UP_PID | 0x83UL)) { /* Simultaneous Effects Ma= x */ dbg_hid("Maximum Effects - %d\n",value); return; --=20 2.20.1 --nuuyouwigtdbc5q2 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfWlHToQCjFzAxEFjvP0LAY0mWPEFAmBGYfoACgkQvP0LAY0m WPGvFQ/9Hpkj+5o+tfpSEe8WHH2lZz62GYkyBREAdJn12m+5ps3MJzYd2/gOVwhZ UtEwbU5bykW77FLCniyU6f8hKLkQJG8GhmhaA9qrpAT8F4XXoyJpy/U7MRhVDGZT Q34jJSNf09Bs5OliHhmpbFm+MPEmPdiq6T/t6dz+NsqS4kI+37X5MJqMWBVMtGJi 8Jgv6J/Sy2rgjgjsta5sU8wqH4gISECbwbVl91ARWZbwtfUIuGoaf3qmCW6rwcQ4 gFgyOlll/zKX7dvUUre8FfQU5N2NsEQgpfLwVxqYXMsb187jkM2Ug4+gka1iSe5r EtQEounro5T0Z8ynS5SSlNyXlnybBypWKjTEOBJXevtdHYc/H8LROBTc3qJ8UqVL DTnfHqqK0x5tAsWOTQ7nJ9ENTR3Wwc957dBu4mEbqcnddFFLnF/DV25zjGbFYyOG OqhxqZiS3ul0yKfElBICuNCBUBgnae+8qAw0OKHQHiYbEG93BRhXD/LYrq11sLMe Cefs1VAgUxXyAMgtmADgYotBr31T2PRSRWBEtZv7jUdhyEvz+dkEw74wcfE1kBDP PaLsQv1dc2ITllaoH67FAP8YRQKIUQCA0GQFHTgwLCjTkH7wA4Dvatx38TP60FpD /F4yAuXAfyXUDliSxZX0M+9ZQLkKznjoc8vFdgWNe0gJWXePeGI= =i1Fw -----END PGP SIGNATURE----- --nuuyouwigtdbc5q2--