• Hans de Goede's avatar
    platform/x86: intel-vbtn: Switch to an allow-list for SW_TABLET_MODE reporting · 8169bd3e
    Hans de Goede authored
    2 recent commits:
    cfae58ed ("platform/x86: intel-vbtn: Only blacklist SW_TABLET_MODE
    on the 9 / "Laptop" chasis-type")
    1fac39fd ("platform/x86: intel-vbtn: Also handle tablet-mode switch on
    "Detachable" and "Portable" chassis-types")
    
    Enabled reporting of SW_TABLET_MODE on more devices since the vbtn ACPI
    interface is used by the firmware on some of those devices to report this.
    
    Testing has shown that unconditionally enabling SW_TABLET_MODE reporting
    on all devices with a chassis type of 8 ("Portable") or 10 ("Notebook")
    which support the VGBS method is a very bad idea.
    
    Many of these devices are normal laptops (non 2-in-1) models with a VGBS
    which always returns 0, which we translate to SW_TABLET_MODE=1. This in
    turn causes userspace (libinput) to suppress events from the builtin
    keyboard and touchpad, making the laptop essentially unusable.
    
    Since the problem of wrongly reporting SW_TABLET_MODE=1 in combination
    with libinput, leads to a non-usable system. Where as OTOH many people will
    not even notice when SW_TABLET_MODE is not being reported, this commit
    changes intel_vbtn_has_switches() to use a DMI based allow-list.
    
    The new DMI based allow-list matches on the 31 ("Convertible") and
    32 ("Detachable") chassis-types, as these clearly are 2-in-1s and
    so far if they support the intel-vbtn ACPI interface they all have
    properly working SW_TABLET_MODE reporting.
    
    Besides these 2 generic matches, it also contains model specific matches
    for 2-in-1 models which use a different chassis-type and which are known
    to have properly working SW_TABLET_MODE reporting.
    
    This has been tested on the following 2-in-1 devices:
    
    Dell Venue 11 Pro 7130 vPro
    HP Pavilion X2 10-p002nd
    HP Stream x360 Convertible PC 11
    Medion E1239T
    
    Fixes: cfae58ed ("platform/x86: intel-vbtn: Only blacklist SW_TABLET_MODE on the 9 / "Laptop" chasis-type")
    BugLink: https://forum.manjaro.org/t/keyboard-and-touchpad-only-work-on-kernel-5-6/22668
    BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1175599
    Cc: Barnabás Pőcze <pobrn@protonmail.com>
    Cc: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    8169bd3e
intel-vbtn.c 9.81 KB