Re: [PATCH RESEND v3] Input: clear BTN_RIGHT/MIDDLE on buttonpads

From: Dmitry Torokhov
Date: Tue Feb 08 2022 - 17:34:19 EST


On Tue, Feb 08, 2022 at 06:48:06PM +0100, José Expósito wrote:
> 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@xxxxxxxxx>
> Acked-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
> Acked-by: Jiri Kosina <jkosina@xxxxxxx>
> Signed-off-by: José Expósito <jose.exposito89@xxxxxxxxx>
>

Applied, thank you.

--
Dmitry