Re: [PATCH RESEND] HID: input: Support devices sending Eraser without Invert

From: Jiri Kosina
Date: Mon Aug 14 2023 - 05:21:09 EST


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