Re: [PATCH] ACPI: PM: Only mark EC GPE for wakeup on Intel systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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!



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux