Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+30
+28
drivers/platform/x86/asus-nb-wmi.c
··· 41 41 module_param(wapf, uint, 0444); 42 42 MODULE_PARM_DESC(wapf, "WAPF value"); 43 43 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 + 44 48 static struct quirk_entry *quirks; 45 49 46 50 static bool asus_q500a_i8042_filter(unsigned char data, unsigned char str, ··· 462 458 }, 463 459 .driver_data = &quirk_asus_use_lid_flip_devid, 464 460 }, 461 + { 462 + .callback = dmi_matched, 463 + .ident = "ASUS TP200s / E205SA", 464 + .matches = { 465 + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), 466 + DMI_MATCH(DMI_PRODUCT_NAME, "E205SA"), 467 + }, 468 + .driver_data = &quirk_asus_use_lid_flip_devid, 469 + }, 465 470 {}, 466 471 }; 467 472 ··· 489 476 quirks->wapf = wapf; 490 477 else 491 478 wapf = quirks->wapf; 479 + 480 + switch (tablet_mode_sw) { 481 + case 0: 482 + quirks->use_kbd_dock_devid = false; 483 + quirks->use_lid_flip_devid = false; 484 + break; 485 + case 1: 486 + quirks->use_kbd_dock_devid = true; 487 + quirks->use_lid_flip_devid = false; 488 + break; 489 + case 2: 490 + quirks->use_kbd_dock_devid = false; 491 + quirks->use_lid_flip_devid = true; 492 + break; 493 + } 492 494 493 495 if (quirks->i8042_filter) { 494 496 ret = i8042_install_filter(quirks->i8042_filter);
+2
drivers/platform/x86/gigabyte-wmi.c
··· 140 140 }} 141 141 142 142 static const struct dmi_system_id gigabyte_wmi_known_working_platforms[] = { 143 + DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M S2H V2"), 143 144 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE"), 144 145 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE V2"), 145 146 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 GAMING X V2"), ··· 148 147 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550M DS3H"), 149 148 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z390 I AORUS PRO WIFI-CF"), 150 149 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 AORUS ELITE"), 150 + DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 GAMING X"), 151 151 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 I AORUS PRO WIFI"), 152 152 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 UD"), 153 153 { }