Hi All, On 8/12/21 4:55 PM, Hans de Goede wrote: > 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@xxxxxxxxxx> I've added this series to my review-hans and the pdx86/fixes branches now (the patches were already tested by the bug reporter before I posted them). Regards, Hans > --- > drivers/platform/x86/asus-nb-wmi.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c > index 0cb927f0f301..9929eedf7dd8 100644 > --- a/drivers/platform/x86/asus-nb-wmi.c > +++ b/drivers/platform/x86/asus-nb-wmi.c > @@ -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) { >