On Wed, Jun 30, 2021 at 9:46 PM Mario Limonciello <mario.limonciello@xxxxxxx> wrote: > > 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 10a08fd65ec1 ("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 b90ff3554aa3 ("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 <mario.limonciello@xxxxxxx> > Acked-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/acpi/x86/s2idle.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c > index 816bf2c34b7a..1c507804fb10 100644 > --- a/drivers/acpi/x86/s2idle.c > +++ b/drivers/acpi/x86/s2idle.c > @@ -417,11 +417,15 @@ static int lps0_device_attach(struct acpi_device *adev, > mem_sleep_current = PM_SUSPEND_TO_IDLE; > > /* > - * Some LPS0 systems, like ASUS Zenbook UX430UNR/i7-8550U, require the > - * EC GPE to be enabled while suspended for certain wakeup devices to > - * work, so mark it as wakeup-capable. > + * Some Intel based LPS0 systems, like ASUS Zenbook UX430UNR/i7-8550U don't > + * use intel-hid or intel-vbtn but require the EC GPE to be enabled while > + * suspended for certain wakeup devices to work, so mark it as wakeup-capable. > + * > + * Only enable on !AMD as enabling this universally causes problems for a number > + * of AMD based systems. > */ > - acpi_ec_mark_gpe_for_wake(); > + if (!acpi_s2idle_vendor_amd()) > + acpi_ec_mark_gpe_for_wake(); > > return 0; > } > -- Applied as 5.14-rc1 material, thanks!