]> git.baikalelectronics.ru Git - kernel.git/commit
platform/x86: asus-wmi: Fix SW_TABLET_MODE always reporting 1 on many different models
authorHans de Goede <hdegoede@redhat.com>
Wed, 16 Sep 2020 14:14:39 +0000 (16:14 +0200)
committerHans de Goede <hdegoede@redhat.com>
Tue, 6 Oct 2020 07:48:05 +0000 (09:48 +0200)
commit52e16b6f258d9c37b67e5aa2cca3a3f3b0fb835e
tree39bfa0d953c9ad5084945769dab973d5349e8d9e
parent9980d70457f02f1601e2e4cd08def0776940d0e6
platform/x86: asus-wmi: Fix SW_TABLET_MODE always reporting 1 on many different models

Commit 3156d8021128 ("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: 3156d8021128 ("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=1876997
Reported-by: Samuel Čavoj <samuel@cavoj.net>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/asus-nb-wmi.c
drivers/platform/x86/asus-wmi.c
drivers/platform/x86/asus-wmi.h