[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHQZ30DP8ED4g3bib-tZ53rm2q2_ouEEL3TxD-SgK4YrCe3bew@mail.gmail.com>
Date: Mon, 6 Nov 2023 09:17:00 -0700
From: Raul Rangel <rrangel@...gle.com>
To: Mario Limonciello <mario.limonciello@....com>
Cc: Alessandro Zummo <a.zummo@...ertech.it>,
Alexandre Belloni <alexandre.belloni@...tlin.com>,
"open list:REAL TIME CLOCK (RTC) SUBSYSTEM"
<linux-rtc@...r.kernel.org>,
open list <linux-kernel@...r.kernel.org>,
alvin.zhuge@...il.com, renzhamin@...il.com, kelvie@...vie.ca
Subject: Re: [PATCH] rtc: cmos: Use ACPI alarm for non-Intel x86 systems too
On Mon, Nov 6, 2023 at 9:14 AM Mario Limonciello
<mario.limonciello@....com> 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@...r.kernel.org # 6.1+
> Reported-by: alvin.zhuge@...il.com
> Reported-by: renzhamin@...il.com
> Closes: https://github.com/systemd/systemd/issues/24279
> Reported-by: Kelvie Wong <kelvie@...vie.ca>
> Closes: https://community.frame.work/t/systemd-suspend-then-hibernate-wakes-up-after-5-minutes/39392
> Signed-off-by: Mario Limonciello <mario.limonciello@....com>
> ---
> 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@...omium.org>
Powered by blists - more mailing lists