• Illia Ostapyshyn's avatar
    HID: input: Support devices sending Eraser without Invert · 276e14e6
    Illia Ostapyshyn authored
    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 87562fcd ("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: 87562fcd ("HID: input: remove the need for HID_QUIRK_INVERT")
    Co-developed-by: default avatarNils Fuhler <nils@nilsfuhler.de>
    Signed-off-by: default avatarNils Fuhler <nils@nilsfuhler.de>
    Signed-off-by: default avatarIllia Ostapyshyn <ostapyshyn@sra.uni-hannover.de>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    276e14e6
hid-input.c 68.1 KB