On Tue, 13 Jun 2023, Illia Ostapyshyn wrote: > Some digitizers (notably XP-Pen Artist 24) do not report the Invert > usage when erasing. This causes the device to be permanently stuck with > the BTN_TOOL_RUBBER tool after sending Eraser, as Invert is the only > usage that can release the tool. In this state, Touch and Inrange are > no longer reported to userspace, rendering the pen unusable. > > Prior to commit 87562fcd1342 ("HID: input: remove the need for > HID_QUIRK_INVERT"), BTN_TOOL_RUBBER was never set and Eraser events were > simply translated into BTN_TOUCH without causing an inconsistent state. > > Introduce HID_QUIRK_NOINVERT for such digitizers and detect them during > hidinput_configure_usage(). This quirk causes the tool to be released > as soon as Eraser is reported as not set. Set BTN_TOOL_RUBBER in > input->keybit when mapping Eraser. > > Fixes: 87562fcd1342 ("HID: input: remove the need for HID_QUIRK_INVERT") > Co-developed-by: Nils Fuhler <nils@xxxxxxxxxxxxx> > Signed-off-by: Nils Fuhler <nils@xxxxxxxxxxxxx> > Signed-off-by: Illia Ostapyshyn <ostapyshyn@xxxxxxxxxxxxxxxxxxx> Applied, thanks. > --- > We were wondering about the reason to keep quirk bits reserved for > backward compatibility. Is it because of dynamic quirks at module load > time? Yes, that is indeed the case. Thanks, -- Jiri Kosina SUSE Labs