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

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'platform-drivers-x86-v6.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86

Pull x86 platform driver fixes from Hans de Goede:

- Fix a regression in ideapad-laptop which caused the touchpad to stop
working after a suspend/resume on some models

- One other small fix and three hw-id additions

* tag 'platform-drivers-x86-v6.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
platform/x86: ideapad-laptop: Stop sending KEY_TOUCHPAD_TOGGLE
platform/x86: asus-nb-wmi: Add quirk_asus_tablet_mode to other ROG Flow X13 models
platform/x86: gigabyte-wmi: add support for X570S AORUS ELITE
platform/x86: gigabyte-wmi: add support for B650 AORUS ELITE AX
platform/x86/intel/pmc: Alder Lake PCH slp_s0_residency fix

+26 -15
+2 -1
drivers/platform/x86/asus-nb-wmi.c
··· 464 464 .ident = "ASUS ROG FLOW X13", 465 465 .matches = { 466 466 DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), 467 - DMI_MATCH(DMI_PRODUCT_NAME, "GV301Q"), 467 + /* Match GV301** */ 468 + DMI_MATCH(DMI_PRODUCT_NAME, "GV301"), 468 469 }, 469 470 .driver_data = &quirk_asus_tablet_mode, 470 471 },
+2
drivers/platform/x86/gigabyte-wmi.c
··· 151 151 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550I AORUS PRO AX"), 152 152 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550M AORUS PRO-P"), 153 153 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550M DS3H"), 154 + DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B650 AORUS ELITE AX"), 154 155 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B660 GAMING X DDR4"), 155 156 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B660I AORUS PRO DDR4"), 156 157 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z390 I AORUS PRO WIFI-CF"), ··· 161 160 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 GAMING X"), 162 161 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 I AORUS PRO WIFI"), 163 162 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 UD"), 163 + DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570S AORUS ELITE"), 164 164 DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z690M AORUS ELITE AX DDR4"), 165 165 { } 166 166 };
+10 -13
drivers/platform/x86/ideapad-laptop.c
··· 1170 1170 { KE_KEY, 65, { KEY_PROG4 } }, 1171 1171 { KE_KEY, 66, { KEY_TOUCHPAD_OFF } }, 1172 1172 { KE_KEY, 67, { KEY_TOUCHPAD_ON } }, 1173 - { KE_KEY, 68, { KEY_TOUCHPAD_TOGGLE } }, 1174 1173 { KE_KEY, 128, { KEY_ESC } }, 1175 1174 1176 1175 /* ··· 1525 1526 if (priv->features.ctrl_ps2_aux_port) 1526 1527 i8042_command(&param, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE); 1527 1528 1528 - if (send_events) { 1529 - /* 1530 - * On older models the EC controls the touchpad and toggles it 1531 - * on/off itself, in this case we report KEY_TOUCHPAD_ON/_OFF. 1532 - * If the EC did not toggle, report KEY_TOUCHPAD_TOGGLE. 1533 - */ 1534 - if (value != priv->r_touchpad_val) { 1535 - ideapad_input_report(priv, value ? 67 : 66); 1536 - sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad"); 1537 - } else { 1538 - ideapad_input_report(priv, 68); 1539 - } 1529 + /* 1530 + * On older models the EC controls the touchpad and toggles it on/off 1531 + * itself, in this case we report KEY_TOUCHPAD_ON/_OFF. Some models do 1532 + * an acpi-notify with VPC bit 5 set on resume, so this function get 1533 + * called with send_events=true on every resume. Therefor if the EC did 1534 + * not toggle, do nothing to avoid sending spurious KEY_TOUCHPAD_TOGGLE. 1535 + */ 1536 + if (send_events && value != priv->r_touchpad_val) { 1537 + ideapad_input_report(priv, value ? 67 : 66); 1538 + sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad"); 1540 1539 } 1541 1540 1542 1541 priv->r_touchpad_val = value;
+12 -1
drivers/platform/x86/intel/pmc/core.c
··· 66 66 67 67 static inline u64 pmc_core_adjust_slp_s0_step(struct pmc_dev *pmcdev, u32 value) 68 68 { 69 - return (u64)value * pmcdev->map->slp_s0_res_counter_step; 69 + /* 70 + * ADL PCH does not have the SLP_S0 counter and LPM Residency counters are 71 + * used as a workaround which uses 30.5 usec tick. All other client 72 + * programs have the legacy SLP_S0 residency counter that is using the 122 73 + * usec tick. 74 + */ 75 + const int lpm_adj_x2 = pmcdev->map->lpm_res_counter_step_x2; 76 + 77 + if (pmcdev->map == &adl_reg_map) 78 + return (u64)value * GET_X2_COUNTER((u64)lpm_adj_x2); 79 + else 80 + return (u64)value * pmcdev->map->slp_s0_res_counter_step; 70 81 } 71 82 72 83 static int set_etr3(struct pmc_dev *pmcdev)