platform/x86: asus-nb-wmi: Allow configuring SW_TABLET_MODE method with a module option
Unfortunately we have been unable to find a reliable way to detect if and how SW_TABLET_MODE reporting is supported, so we are relying on DMI quirks for this. Add a module-option to specify the SW_TABLET_MODE method so that this can be easily tested without needing to rebuild the kernel. BugLink: https://gitlab.freedesktop.org/libinput/libinput/-/issues/639 Signed-off-by: Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20210812145513.39117-1-hdegoede@redhat.com
This commit is contained in:
Родитель
9d7b132e62
Коммит
7f45621c14
|
@ -41,6 +41,10 @@ static int wapf = -1;
|
|||
module_param(wapf, uint, 0444);
|
||||
MODULE_PARM_DESC(wapf, "WAPF value");
|
||||
|
||||
static int tablet_mode_sw = -1;
|
||||
module_param(tablet_mode_sw, uint, 0444);
|
||||
MODULE_PARM_DESC(tablet_mode_sw, "Tablet mode detect: -1:auto 0:disable 1:kbd-dock 2:lid-flip");
|
||||
|
||||
static struct quirk_entry *quirks;
|
||||
|
||||
static bool asus_q500a_i8042_filter(unsigned char data, unsigned char str,
|
||||
|
@ -477,6 +481,21 @@ static void asus_nb_wmi_quirks(struct asus_wmi_driver *driver)
|
|||
else
|
||||
wapf = quirks->wapf;
|
||||
|
||||
switch (tablet_mode_sw) {
|
||||
case 0:
|
||||
quirks->use_kbd_dock_devid = false;
|
||||
quirks->use_lid_flip_devid = false;
|
||||
break;
|
||||
case 1:
|
||||
quirks->use_kbd_dock_devid = true;
|
||||
quirks->use_lid_flip_devid = false;
|
||||
break;
|
||||
case 2:
|
||||
quirks->use_kbd_dock_devid = false;
|
||||
quirks->use_lid_flip_devid = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (quirks->i8042_filter) {
|
||||
ret = i8042_install_filter(quirks->i8042_filter);
|
||||
if (ret) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче