Skip to content

Commit 7b167c4

Browse files
superm1rafaeljw
authored andcommitted
ACPI: PM: Only mark EC GPE for wakeup on Intel systems
When using s2idle on a variety of AMD notebook systems, they are experiencing spurious events that the EC or SMU are in the wrong state leading to a hard time waking up or higher than expected power consumption. These events only occur when the EC GPE is inadvertently set as a wakeup source. Originally the EC GPE was only set as a wakeup source when using the intel-vbtn or intel-hid drivers in commit 10a08fd ("ACPI: PM: Set up EC GPE for system wakeup from drivers that need it") but during testing a reporter discovered that this was not enough for their ASUS Zenbook UX430UNR/i7-8550U to wakeup by lid event or keypress. Marking the EC GPE for wakeup universally resolved this for that reporter in commit b90ff35 ("ACPI: PM: s2idle: Always set up EC GPE for system wakeup"). However this behavior has lead to a number of problems: * On both Lenovo T14 and P14s the keyboard wakeup doesn't work, and sometimes the power button event doesn't work. * On HP 635 G7 detaching or attaching AC during suspend will cause the system not to wakeup * On Asus vivobook to prevent detaching AC causing resume problems * On Lenovo 14ARE05 to prevent detaching AC causing resume problems * On HP ENVY x360 to prevent detaching AC causing resume problems As there may be other Intel systems besides ASUS Zenbook UX430UNR/i7-8550U that don't use intel-vbtn or intel-hid, avoid these problems by only universally marking the EC GPE wakesource on non-AMD systems. Link: https://patchwork.kernel.org/project/linux-pm/cover/5997740.FPbUVk04hV@kreacher/#22825489 Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1230 Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1629 Signed-off-by: Mario Limonciello <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
1 parent 5e69282 commit 7b167c4

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

drivers/acpi/x86/s2idle.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -417,11 +417,15 @@ static int lps0_device_attach(struct acpi_device *adev,
417417
mem_sleep_current = PM_SUSPEND_TO_IDLE;
418418

419419
/*
420-
* Some LPS0 systems, like ASUS Zenbook UX430UNR/i7-8550U, require the
421-
* EC GPE to be enabled while suspended for certain wakeup devices to
422-
* work, so mark it as wakeup-capable.
420+
* Some Intel based LPS0 systems, like ASUS Zenbook UX430UNR/i7-8550U don't
421+
* use intel-hid or intel-vbtn but require the EC GPE to be enabled while
422+
* suspended for certain wakeup devices to work, so mark it as wakeup-capable.
423+
*
424+
* Only enable on !AMD as enabling this universally causes problems for a number
425+
* of AMD based systems.
423426
*/
424-
acpi_ec_mark_gpe_for_wake();
427+
if (!acpi_s2idle_vendor_amd())
428+
acpi_ec_mark_gpe_for_wake();
425429

426430
return 0;
427431
}

0 commit comments

Comments
 (0)