Re: [PATCH] rtc: cmos: Use ACPI alarm for non-Intel x86 systems too

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

 



On Mon, Nov 6, 2023 at 9:14 AM Mario Limonciello
<mario.limonciello@xxxxxxx> wrote:
>
> Intel systems > 2015 have been configured to use ACPI alarm instead
> of HPET to avoid s2idle issues.
>
> Having HPET programmed for wakeup causes problems on AMD systems with
> s2idle as well.
>
> One particular case is that the systemd "SuspendThenHibernate" feature
> doesn't work properly on the Framework 13" AMD model. Switching to
> using ACPI alarm fixes the issue.
>
> Adjust the quirk to apply to AMD/Hygon systems from 2021 onwards.
> This matches what has been tested and is specifically to avoid potential
> risk to older systems.
>
> Cc: stable@xxxxxxxxxxxxxxx # 6.1+
> Reported-by: alvin.zhuge@xxxxxxxxx
> Reported-by: renzhamin@xxxxxxxxx
> Closes: https://github.com/systemd/systemd/issues/24279
> Reported-by: Kelvie Wong <kelvie@xxxxxxxxx>
> Closes: https://community.frame.work/t/systemd-suspend-then-hibernate-wakes-up-after-5-minutes/39392
> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
> ---
>  drivers/rtc/rtc-cmos.c | 18 ++++++++++++------
>  1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
> index 228fb2d11c70..696cfa7025de 100644
> --- a/drivers/rtc/rtc-cmos.c
> +++ b/drivers/rtc/rtc-cmos.c
> @@ -818,18 +818,24 @@ static void rtc_wake_off(struct device *dev)
>  }
>
>  #ifdef CONFIG_X86
> -/* Enable use_acpi_alarm mode for Intel platforms no earlier than 2015 */
>  static void use_acpi_alarm_quirks(void)
>  {
> -       if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
> +       switch (boot_cpu_data.x86_vendor) {
> +       case X86_VENDOR_INTEL:
> +               if (dmi_get_bios_year() < 2015)
> +                       return;
> +               break;
> +       case X86_VENDOR_AMD:
> +       case X86_VENDOR_HYGON:
> +               if (dmi_get_bios_year() < 2021)
> +                       return;
> +               break;
> +       default:
>                 return;
> -
> +       }
>         if (!is_hpet_enabled())
>                 return;
>
> -       if (dmi_get_bios_year() < 2015)
> -               return;
> -
>         use_acpi_alarm = true;
>  }
>  #else
> --
> 2.34.1
>
Acked-by: Raul E Rangel <rrangel@xxxxxxxxxxxx>





[Index of Archives]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux