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 'acpi-6.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull ACPI fixes from Rafael Wysocki:
"These fix a recent regression in the ACPI button driver, add quirks
related to EC wakeups from suspend-to-idle and fix coding mistakes
related to the usage of sizeof() in the PPTT parser code:

Summary:

- Add suspend-to-idle EC wakeup quirks for Lenovo Go S (Mario
Limonciello)

- Prevent ACPI button from sending spurions KEY_POWER events to user
space in some cases after a recent update (Mario Limonciello)

- Compute the size of a structure instead of the size of a pointer in
two places in the PPTT parser code (Jean-Marc Eurin)"

* tag 'acpi-6.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
ACPI PPTT: Fix coding mistakes in a couple of sizeof() calls
ACPI: EC: Set ec_no_wakeup for Lenovo Go S
ACPI: button: Only send `KEY_POWER` for `ACPI_BUTTON_NOTIFY_STATUS`

+31 -3
+1 -1
drivers/acpi/button.c
··· 458 458 acpi_pm_wakeup_event(&device->dev); 459 459 460 460 button = acpi_driver_data(device); 461 - if (button->suspended) 461 + if (button->suspended || event == ACPI_BUTTON_NOTIFY_WAKE) 462 462 return; 463 463 464 464 input = button->input;
+28
drivers/acpi/ec.c
··· 2301 2301 DMI_MATCH(DMI_PRODUCT_FAMILY, "103C_5336AN HP ZHAN 66 Pro"), 2302 2302 }, 2303 2303 }, 2304 + /* 2305 + * Lenovo Legion Go S; touchscreen blocks HW sleep when woken up from EC 2306 + * https://gitlab.freedesktop.org/drm/amd/-/issues/3929 2307 + */ 2308 + { 2309 + .matches = { 2310 + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), 2311 + DMI_MATCH(DMI_PRODUCT_NAME, "83L3"), 2312 + } 2313 + }, 2314 + { 2315 + .matches = { 2316 + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), 2317 + DMI_MATCH(DMI_PRODUCT_NAME, "83N6"), 2318 + } 2319 + }, 2320 + { 2321 + .matches = { 2322 + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), 2323 + DMI_MATCH(DMI_PRODUCT_NAME, "83Q2"), 2324 + } 2325 + }, 2326 + { 2327 + .matches = { 2328 + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), 2329 + DMI_MATCH(DMI_PRODUCT_NAME, "83Q3"), 2330 + } 2331 + }, 2304 2332 { }, 2305 2333 }; 2306 2334
+2 -2
drivers/acpi/pptt.c
··· 229 229 node_entry = ACPI_PTR_DIFF(node, table_hdr); 230 230 entry = ACPI_ADD_PTR(struct acpi_subtable_header, table_hdr, 231 231 sizeof(struct acpi_table_pptt)); 232 - proc_sz = sizeof(struct acpi_pptt_processor *); 232 + proc_sz = sizeof(struct acpi_pptt_processor); 233 233 234 234 while ((unsigned long)entry + proc_sz < table_end) { 235 235 cpu_node = (struct acpi_pptt_processor *)entry; ··· 270 270 table_end = (unsigned long)table_hdr + table_hdr->length; 271 271 entry = ACPI_ADD_PTR(struct acpi_subtable_header, table_hdr, 272 272 sizeof(struct acpi_table_pptt)); 273 - proc_sz = sizeof(struct acpi_pptt_processor *); 273 + proc_sz = sizeof(struct acpi_pptt_processor); 274 274 275 275 /* find the processor structure associated with this cpuid */ 276 276 while ((unsigned long)entry + proc_sz < table_end) {