From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
stable@vger.kernel.org,
"Peter Hutterer" <peter.hutterer@who-t.net>,
"Benjamin Tissoires" <benjamin.tissoires@redhat.com>,
"Jiri Kosina" <jkosina@suse.cz>,
"José Expósito" <jose.exposito89@gmail.com>,
"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
"Sasha Levin" <sashal@kernel.org>
Subject: [PATCH 4.19 06/51] Input: clear BTN_RIGHT/MIDDLE on buttonpads
Date: Mon, 7 Mar 2022 10:18:41 +0100 [thread overview]
Message-ID: <20220307091637.175319221@linuxfoundation.org> (raw)
In-Reply-To: <20220307091636.988950823@linuxfoundation.org>
From: José Expósito <jose.exposito89@gmail.com>
[ Upstream commit 37ef4c19b4c659926ce65a7ac709ceaefb211c40 ]
Buttonpads are expected to map the INPUT_PROP_BUTTONPAD property bit
and the BTN_LEFT key bit.
As explained in the specification, where a device has a button type
value of 0 (click-pad) or 1 (pressure-pad) there should not be
discrete buttons:
https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/touchpad-windows-precision-touchpad-collection#device-capabilities-feature-report
However, some drivers map the BTN_RIGHT and/or BTN_MIDDLE key bits even
though the device is a buttonpad and therefore does not have those
buttons.
This behavior has forced userspace applications like libinput to
implement different workarounds and quirks to detect buttonpads and
offer to the user the right set of features and configuration options.
For more information:
https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/726
In order to avoid this issue clear the BTN_RIGHT and BTN_MIDDLE key
bits when the input device is register if the INPUT_PROP_BUTTONPAD
property bit is set.
Notice that this change will not affect udev because it does not check
for buttons. See systemd/src/udev/udev-builtin-input_id.c.
List of known affected hardware:
- Chuwi AeroBook Plus
- Chuwi Gemibook
- Framework Laptop
- GPD Win Max
- Huawei MateBook 2020
- Prestigio Smartbook 141 C2
- Purism Librem 14v1
- StarLite Mk II - AMI firmware
- StarLite Mk II - Coreboot firmware
- StarLite Mk III - AMI firmware
- StarLite Mk III - Coreboot firmware
- StarLabTop Mk IV - AMI firmware
- StarLabTop Mk IV - Coreboot firmware
- StarBook Mk V
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Link: https://lore.kernel.org/r/20220208174806.17183-1-jose.exposito89@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/input/input.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/input/input.c b/drivers/input/input.c
index a0d90022fcf73..b031174c8d7f7 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -2118,6 +2118,12 @@ int input_register_device(struct input_dev *dev)
/* KEY_RESERVED is not supposed to be transmitted to userspace. */
__clear_bit(KEY_RESERVED, dev->keybit);
+ /* Buttonpads should not map BTN_RIGHT and/or BTN_MIDDLE. */
+ if (test_bit(INPUT_PROP_BUTTONPAD, dev->propbit)) {
+ __clear_bit(BTN_RIGHT, dev->keybit);
+ __clear_bit(BTN_MIDDLE, dev->keybit);
+ }
+
/* Make sure that bitmasks not mentioned in dev->evbit are clean. */
input_cleanse_bitmasks(dev);
--
2.34.1
next prev parent reply other threads:[~2022-03-07 9:30 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-07 9:18 [PATCH 4.19 00/51] 4.19.233-rc1 review Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 01/51] mac80211_hwsim: report NOACK frames in tx_status Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 02/51] mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 03/51] i2c: bcm2835: Avoid clock stretching timeouts Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 04/51] ASoC: rt5668: do not block workqueue if card is unbound Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 05/51] ASoC: rt5682: " Greg Kroah-Hartman
2022-03-07 9:18 ` Greg Kroah-Hartman [this message]
2022-03-07 9:18 ` [PATCH 4.19 07/51] cifs: fix double free race when mount fails in cifs_get_root() Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 08/51] dmaengine: shdma: Fix runtime PM imbalance on error Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 09/51] i2c: cadence: allow COMPILE_TEST Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 10/51] i2c: qup: " Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 11/51] net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990 Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 12/51] usb: gadget: dont release an existing dev->buf Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 13/51] usb: gadget: clear related members when goto fail Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 14/51] ata: pata_hpt37x: fix PCI clock detection Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 15/51] ALSA: intel_hdmi: Fix reference to PCM buffer address Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 16/51] ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 17/51] xfrm: fix MTU regression Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 18/51] netfilter: fix use-after-free in __nf_register_net_hook() Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 19/51] xfrm: fix the if_id check in changelink Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 20/51] xfrm: enforce validity of offload input flags Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 21/51] netfilter: nf_queue: dont assume sk is full socket Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 22/51] netfilter: nf_queue: fix possible use-after-free Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 23/51] batman-adv: Request iflink once in batadv-on-batadv check Greg Kroah-Hartman
2022-03-07 9:18 ` [PATCH 4.19 24/51] batman-adv: Request iflink once in batadv_get_real_netdevice Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 25/51] batman-adv: Dont expect inter-netns unique iflink indices Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 26/51] net: dcb: flush lingering app table entries for unregistered devices Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 27/51] net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 28/51] net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 29/51] block: Fix fsync always failed if once failed Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 30/51] PCI: pciehp: Fix infinite loop in IRQ handler upon power fault Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 31/51] xen/netfront: destroy queues before real_num_tx_queues is zeroed Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 32/51] mac80211: fix forwarded mesh frames AC & queue selection Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 33/51] net: stmmac: fix return value of __setup handler Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 34/51] net: sxgbe: " Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 35/51] net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe() Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 36/51] efivars: Respect "block" flag in efivar_entry_set_safe() Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 37/51] firmware: arm_scmi: Remove space in MODULE_ALIAS name Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 38/51] can: gs_usb: change active_channelss type from atomic_t to u8 Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 39/51] arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 40/51] ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 41/51] ibmvnic: free reset-work-item when flushing Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 42/51] soc: fsl: qe: Check of ioremap return value Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 43/51] net: chelsio: cxgb3: check the return value of pci_find_capability() Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 44/51] nl80211: Handle nla_memdup failures in handle_nan_filter Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 45/51] Input: elan_i2c - move regulator_[en|dis]able() out of elan_[en|dis]able_power() Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 46/51] Input: elan_i2c - fix regulator enable count imbalance after suspend/resume Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 47/51] HID: add mapping for KEY_ALL_APPLICATIONS Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 48/51] memfd: fix F_SEAL_WRITE after shmem huge page allocated Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 49/51] tracing/histogram: Fix sorting on old "cpu" value Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 50/51] btrfs: add missing run of delayed items after unlink during log replay Greg Kroah-Hartman
2022-03-07 9:19 ` [PATCH 4.19 51/51] net: dcb: disable softirqs in dcbnl_flush_dev() Greg Kroah-Hartman
2022-03-07 14:59 ` [PATCH 4.19 00/51] 4.19.233-rc1 review Pavel Machek
2022-03-07 23:47 ` Shuah Khan
2022-03-08 6:34 ` Samuel Zou
2022-03-08 8:20 ` Jon Hunter
2022-03-08 14:07 ` Naresh Kamboju
2022-03-08 15:00 ` Jeffrin Thalakkottoor
2022-03-08 15:48 ` Sudip Mukherjee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220307091637.175319221@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=benjamin.tissoires@redhat.com \
--cc=dmitry.torokhov@gmail.com \
--cc=jkosina@suse.cz \
--cc=jose.exposito89@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peter.hutterer@who-t.net \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).