• Hans de Goede's avatar
    platform/x86: asus-wmi: Fix SW_TABLET_MODE always reporting 1 on many different models · 1797d588
    Hans de Goede authored
    Commit b0dbd97d ("platform/x86: asus-wmi: Add support for
    SW_TABLET_MODE") added support for reporting SW_TABLET_MODE using the
    Asus 0x00120063 WMI-device-id to see if various transformer models were
    docked into their keyboard-dock (SW_TABLET_MODE=0) or if they were
    being used as a tablet.
    
    The new SW_TABLET_MODE support (naively?) assumed that non Transformer
    devices would either not support the 0x00120063 WMI-device-id at all,
    or would NOT set ASUS_WMI_DSTS_PRESENCE_BIT in their reply when querying
    the device-id.
    
    Unfortunately this is not true and we have received many bug reports about
    this change causing the asus-wmi driver to always report SW_TABLET_MODE=1
    on non Transformer devices. This causes libinput to think that these are
    360 degree hinges style 2-in-1s folded into tablet-mode. Making libinput
    suppress keyboard and touchpad events from the builtin keyboard and
    touchpad. So effectively this causes the keyboard and touchpad to not work
    on many non Transformer Asus models.
    
    This commit fixes this by using the existing DMI based quirk mechanism in
    asus-nb-wmi.c to allow using the 0x00120063 device-id for reporting
    SW_TABLET_MODE on Transformer models and ignoring it on all other models.
    
    Fixes: b0dbd97d ("platform/x86: asus-wmi: Add support for SW_TABLET_MODE")
    Link: https://patchwork.kernel.org/patch/11780901/
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=209011
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1876997Reported-by: default avatarSamuel Čavoj <samuel@cavoj.net>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    1797d588
asus-nb-wmi.c 17.5 KB