Skip to content

Commit e649e4c

Browse files
committed
Merge tag 'platform-drivers-x86-v5.14-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
Pull x86 platform driver fixes from Hans de Goede: - Enable SW_TABLET_MODE support for the TP200s - Enable WMI on two more Gigabyte motherboards * tag 'platform-drivers-x86-v5.14-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: platform/x86: gigabyte-wmi: add support for B450M S2H V2 platform/x86: gigabyte-wmi: add support for X570 GAMING X platform/x86: asus-nb-wmi: Add tablet_mode_sw=lid-flip quirk for the TP200s platform/x86: asus-nb-wmi: Allow configuring SW_TABLET_MODE method with a module option
2 parents d6d09a6 + 1e35b8a commit e649e4c

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

drivers/platform/x86/asus-nb-wmi.c

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ static int wapf = -1;
4141
module_param(wapf, uint, 0444);
4242
MODULE_PARM_DESC(wapf, "WAPF value");
4343

44+
static int tablet_mode_sw = -1;
45+
module_param(tablet_mode_sw, uint, 0444);
46+
MODULE_PARM_DESC(tablet_mode_sw, "Tablet mode detect: -1:auto 0:disable 1:kbd-dock 2:lid-flip");
47+
4448
static struct quirk_entry *quirks;
4549

4650
static bool asus_q500a_i8042_filter(unsigned char data, unsigned char str,
@@ -458,6 +462,15 @@ static const struct dmi_system_id asus_quirks[] = {
458462
},
459463
.driver_data = &quirk_asus_use_lid_flip_devid,
460464
},
465+
{
466+
.callback = dmi_matched,
467+
.ident = "ASUS TP200s / E205SA",
468+
.matches = {
469+
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
470+
DMI_MATCH(DMI_PRODUCT_NAME, "E205SA"),
471+
},
472+
.driver_data = &quirk_asus_use_lid_flip_devid,
473+
},
461474
{},
462475
};
463476

@@ -477,6 +490,21 @@ static void asus_nb_wmi_quirks(struct asus_wmi_driver *driver)
477490
else
478491
wapf = quirks->wapf;
479492

493+
switch (tablet_mode_sw) {
494+
case 0:
495+
quirks->use_kbd_dock_devid = false;
496+
quirks->use_lid_flip_devid = false;
497+
break;
498+
case 1:
499+
quirks->use_kbd_dock_devid = true;
500+
quirks->use_lid_flip_devid = false;
501+
break;
502+
case 2:
503+
quirks->use_kbd_dock_devid = false;
504+
quirks->use_lid_flip_devid = true;
505+
break;
506+
}
507+
480508
if (quirks->i8042_filter) {
481509
ret = i8042_install_filter(quirks->i8042_filter);
482510
if (ret) {

drivers/platform/x86/gigabyte-wmi.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,15 @@ static u8 gigabyte_wmi_detect_sensor_usability(struct wmi_device *wdev)
140140
}}
141141

142142
static const struct dmi_system_id gigabyte_wmi_known_working_platforms[] = {
143+
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M S2H V2"),
143144
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE"),
144145
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE V2"),
145146
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 GAMING X V2"),
146147
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550M AORUS PRO-P"),
147148
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550M DS3H"),
148149
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z390 I AORUS PRO WIFI-CF"),
149150
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 AORUS ELITE"),
151+
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 GAMING X"),
150152
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 I AORUS PRO WIFI"),
151153
DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 UD"),
152154
{ }

0 commit comments

Comments
 (0)