OpenCloudOS-Kernel/drivers/rtc
Mario Limonciello 4845145802 rtc: cmos: Use ACPI alarm for non-Intel x86 systems too
commit 3d762e21d56370a43478b55e604b4a83dd85aafc upstream.

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@vger.kernel.org> # 6.1+
Reported-by:  <alvin.zhuge@gmail.com>
Reported-by:  <renzhamin@gmail.com>
Closes: https://github.com/systemd/systemd/issues/24279
Reported-by: Kelvie Wong <kelvie@kelvie.ca>
Closes: https://community.frame.work/t/systemd-suspend-then-hibernate-wakes-up-after-5-minutes/39392
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://lore.kernel.org/r/20231106162310.85711-1-mario.limonciello@amd.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-31 16:18:56 -08:00
..
Kconfig rtc: bq4802: add sparc dependency 2023-07-27 23:09:55 +02:00
Makefile rtc: Add rtc driver for the Loongson family chips 2023-06-26 01:19:11 +02:00
class.c driver core: class: remove module * from class_create() 2023-03-17 15:16:33 +01:00
dev.c rtc: Remove unused rtc_dev_exit(). 2022-06-24 21:24:02 +02:00
interface.c rtc: stop warning for invalid alarms when the alarm is disabled 2023-09-06 01:25:15 +02:00
lib.c rtc: Improve performance of rtc_time64_to_tm(). Add tests. 2021-08-10 00:09:21 +02:00
lib_test.c rtc: lib_test: add MODULE_LICENSE 2021-08-10 23:21:46 +02:00
nvmem.c
proc.c rtc: fix snprintf() checking in is_rtc_hctosys() 2021-05-25 00:36:11 +02:00
rtc-88pm80x.c rtc: 88pm80x: Convert to platform remove callback returning void 2023-03-17 23:03:16 +01:00
rtc-88pm860x.c rtc: 88pm860x: Convert to platform remove callback returning void 2023-03-17 23:03:16 +01:00
rtc-ab-b5ze-s3.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-ab-eoz9.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-ab8500.c rtc: ab8500: Convert to platform remove callback returning void 2023-03-17 23:03:16 +01:00
rtc-abx80x.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-ac100.c rtc: ac100: Convert to platform remove callback returning void 2023-03-17 23:03:17 +01:00
rtc-armada38x.c rtc: remove redundant of_match_ptr() 2023-08-10 09:45:41 +02:00
rtc-as3722.c
rtc-asm9260.c rtc: asm9260: Convert to platform remove callback returning void 2023-03-17 23:03:17 +01:00
rtc-aspeed.c rtc: remove redundant of_match_ptr() 2023-08-10 09:45:41 +02:00
rtc-at91rm9200.c rtc: remove redundant of_match_ptr() 2023-08-10 09:45:41 +02:00
rtc-at91sam9.c rtc: remove redundant of_match_ptr() 2023-08-10 09:45:41 +02:00
rtc-au1xxx.c rtc: au1xxx: convert to SPDX identifier 2021-07-10 01:53:39 +02:00
rtc-bd70528.c rtc: bd70528: Drop BD70528 support 2021-06-20 22:24:52 +02:00
rtc-bq32k.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-bq4802.c
rtc-brcmstb-waketimer.c rtc: brcmstb-waketimer: support level alarm_irq 2023-11-20 11:59:30 +01:00
rtc-cadence.c rtc: cadence: Convert to platform remove callback returning void 2023-03-17 23:03:17 +01:00
rtc-cmos.c rtc: cmos: Use ACPI alarm for non-Intel x86 systems too 2024-01-31 16:18:56 -08:00
rtc-core.h rtc: Remove unused rtc_dev_exit(). 2022-06-24 21:24:02 +02:00
rtc-cpcap.c
rtc-cros-ec.c rtc: cros-ec: Detect and report supported alarm window size 2023-08-27 23:50:22 +02:00
rtc-da9052.c
rtc-da9055.c
rtc-da9063.c rtc: da9063: Mark the alarm IRQ as a wake IRQ 2023-08-17 01:09:50 +02:00
rtc-digicolor.c
rtc-ds1216.c
rtc-ds1286.c
rtc-ds1302.c rtc: ds1302: remove unnecessary spi_set_drvdata() 2022-11-15 21:01:51 +01:00
rtc-ds1305.c rtc: ds1305: Report maximum alarm limit to rtc core 2023-08-27 23:50:22 +02:00
rtc-ds1307.c rtc: ds1307: fix Wvoid-pointer-to-enum-cast warning 2023-08-16 01:32:08 +02:00
rtc-ds1343.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
rtc-ds1347.c rtc: ds1347: fix value written to century register 2022-11-15 21:01:51 +01:00
rtc-ds1374.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-ds1390.c rtc: ds1390: mark OF related data as maybe unused 2023-03-17 23:23:22 +01:00
rtc-ds1511.c rtc: ds1511: remove unused function 2021-04-17 11:21:04 +02:00
rtc-ds1553.c
rtc-ds1672.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-ds1685.c rtc: ds1685: use EXPORT_SYMBOL_GPL for ds1685_rtc_poweroff 2023-08-02 11:18:22 -07:00
rtc-ds1742.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-ds2404.c rtc: ds2404: Convert to GPIO descriptors 2023-08-17 00:55:56 +02:00
rtc-ds3232.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-efi.c rtc: efi: Avoid spamming the log on RTC read failure 2023-02-22 21:07:53 +01:00
rtc-em3027.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-ep93xx.c
rtc-fm3130.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-fsl-ftm-alarm.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-ftrtc010.c rtc: ftrtc010: Convert to platform remove callback returning void 2023-03-17 23:03:17 +01:00
rtc-gamecube.c rtc: gamecube: Always reset HW_SRNPROT after read 2022-08-23 22:27:58 +02:00
rtc-generic.c
rtc-goldfish.c clocksource/drivers: Add a goldfish-timer clocksource 2022-04-11 11:48:01 +02:00
rtc-hid-sensor-time.c rtc: hid-sensor-time: Convert to platform remove callback returning void 2023-03-17 23:03:17 +01:00
rtc-hym8563.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-imx-sc.c rtc: imx-sc: remove .read_alarm 2021-04-29 23:03:26 +02:00
rtc-imxdi.c rtc: imxdi: add wakeup support 2021-05-25 00:41:25 +02:00
rtc-isl1208.c rtc: isl1208: Fix incorrect logic in isl1208_set_xtoscb() 2023-08-27 23:48:32 +02:00
rtc-isl12022.c rtc: isl12022: implement support for the #clock-cells DT property 2023-08-16 01:27:01 +02:00
rtc-isl12026.c rtc: isl12026: Drop "_new" from probe callback name 2023-07-27 23:32:08 +02:00
rtc-jz4740.c rtc: jz4740: fix Wvoid-pointer-to-enum-cast warning 2023-08-16 01:32:08 +02:00
rtc-loongson.c rtc: Add rtc driver for the Loongson family chips 2023-06-26 01:19:11 +02:00
rtc-lp8788.c
rtc-lpc24xx.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-lpc32xx.c
rtc-m41t80.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-m41t93.c
rtc-m41t94.c
rtc-m48t35.c
rtc-m48t59.c rtc: m48t59: use platform_get_irq_optional 2021-03-11 09:48:09 +01:00
rtc-m48t86.c rtc: m48t86: add DT support for m48t86 2023-08-28 00:01:51 +02:00
rtc-max6900.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-max6902.c
rtc-max6916.c
rtc-max8907.c rtc: max8907: Drop unused i2c include 2023-02-01 09:13:35 +01:00
rtc-max8925.c
rtc-max8997.c
rtc-max8998.c
rtc-max77686.c rtc: max77686: Convert to platform remove callback returning void 2023-03-17 23:03:17 +01:00
rtc-mc13xxx.c rtc: mc13xxx: Convert to platform remove callback returning void 2023-03-17 23:03:17 +01:00
rtc-mc146818-lib.c rtc: mc146818-lib: reduce RTC_UIP polling period 2022-06-24 21:23:50 +02:00
rtc-mcp795.c rtc: mcp795: Add SPI ID table 2021-10-01 23:28:28 +02:00
rtc-meson-vrtc.c rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time 2023-03-21 21:15:10 +01:00
rtc-meson.c rtc: meson: Fix email address in MODULE_AUTHOR 2022-05-18 00:20:39 +02:00
rtc-moxart.c rtc: moxart: switch to using gpiod API 2023-02-09 23:31:46 +01:00
rtc-mpc5121.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-mpfs.c rtc: mpfs: Convert to platform remove callback returning void 2023-03-17 23:03:17 +01:00
rtc-msc313.c rtc: msc313: Fix function prototype mismatch in msc313_rtc_probe() 2022-12-11 18:14:01 +01:00
rtc-msm6242.c
rtc-mt2712.c
rtc-mt6397.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-mt7622.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-mv.c
rtc-mxc.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-mxc_v2.c rtc: mxc_v2: Convert to platform remove callback returning void 2023-03-17 23:03:17 +01:00
rtc-nct3018y.c rtc: remove redundant of_match_ptr() 2023-08-10 09:45:41 +02:00
rtc-ntxec.c rtc: New driver for RTC in Netronix embedded controller 2021-03-10 11:06:33 +00:00
rtc-nxp-bbnsm.c rtc: bbnsm: Add the bbnsm rtc support 2023-02-22 12:25:32 +01:00
rtc-omap.c rtc: omap: Do not check for 0 return after calling platform_get_irq() 2023-08-17 01:17:34 +02:00
rtc-opal.c rtc: opal: switch to RTC_FEATURE_UPDATE_INTERRUPT 2022-03-23 19:58:39 +01:00
rtc-optee.c rtc: optee: add RTC driver for OP-TEE RTC PTA 2022-03-25 11:42:50 +01:00
rtc-palmas.c rtc: palmas: Convert to platform remove callback returning void 2023-03-17 23:03:17 +01:00
rtc-pcap.c
rtc-pcf2123.c rtc: pcf2123: use IRQ flags obtained from fwnode 2023-02-01 09:13:35 +01:00
rtc-pcf2127.c rtc: pcf2127: remove useless check 2023-08-27 23:53:06 +02:00
rtc-pcf8523.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-pcf8563.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-pcf8583.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-pcf50633.c rtc: pcf50633: Convert to platform remove callback returning void 2023-03-17 23:03:18 +01:00
rtc-pcf85063.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-pcf85363.c rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call 2023-11-20 11:59:30 +01:00
rtc-pic32.c rtc: pic32: Convert to platform remove callback returning void 2023-03-17 23:03:18 +01:00
rtc-pl030.c
rtc-pl031.c rtc: pl031: fix rtc features null pointer dereference 2022-03-23 19:58:37 +01:00
rtc-pm8xxx.c rtc: pm8xxx: Convert to platform remove callback returning void 2023-03-17 23:03:18 +01:00
rtc-ps3.c
rtc-pxa.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-r7301.c
rtc-r9701.c
rtc-rc5t583.c rtc: rc5t583: Convert to platform remove callback returning void 2023-03-17 23:03:18 +01:00
rtc-rc5t619.c
rtc-rk808.c rtc: rk808: reduce 'struct rk808' usage 2022-12-11 20:56:33 +01:00
rtc-rp5c01.c
rtc-rs5c313.c rtc: rs5c313: correct some spelling mistakes 2022-12-15 23:34:31 +01:00
rtc-rs5c348.c
rtc-rs5c372.c rtc: rs5c372: fix Wvoid-pointer-to-enum-cast warning 2023-08-16 01:32:08 +02:00
rtc-rtd119x.c rtc: rtd119x: Convert to platform remove callback returning void 2023-03-17 23:03:18 +01:00
rtc-rv3028.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-rv3029c2.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-rv3032.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-rv8803.c rtc: rv8803: fix Wvoid-pointer-to-enum-cast warning 2023-08-16 01:32:08 +02:00
rtc-rx4581.c
rtc-rx6110.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-rx8010.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-rx8025.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-rx8581.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-rzn1.c rtc: rzn1: Report maximum alarm limit to rtc core 2023-08-27 23:50:22 +02:00
rtc-s3c.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-s3c.h
rtc-s5m.c rtc: s5m: Drop S5M8763 support 2023-04-26 11:40:26 +01:00
rtc-s35390a.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-sa1100.c rtc: sa1100: Convert to platform remove callback returning void 2023-03-17 23:03:18 +01:00
rtc-sa1100.h
rtc-sc27xx.c rtc: sc27xx: Fix format of SPDX identifier 2021-07-10 01:53:39 +02:00
rtc-sd3078.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-sh.c
rtc-snvs.c rtc: snvs: Allow a time difference on clock register read 2022-11-15 21:25:44 +01:00
rtc-spear.c rtc: spear: Convert to platform remove callback returning void 2023-03-17 23:03:18 +01:00
rtc-st-lpc.c rtc: st-lpc: Simplify clk handling in st_rtc_probe() 2023-06-26 00:53:19 +02:00
rtc-starfire.c
rtc-stk17ta8.c
rtc-stm32.c rtc: stm32: Use NOIRQ_SYSTEM_SLEEP_PM_OPS() 2023-08-17 00:53:00 +02:00
rtc-stmp3xxx.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-sun4v.c
rtc-sun6i.c rtc: sun6i: remove unnecessary message 2023-09-06 01:26:04 +02:00
rtc-sunplus.c rtc: sunplus: Clean up redundant dev_err_probe() 2023-08-10 09:35:28 +02:00
rtc-sunxi.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-tegra.c rtc: tegra: Convert to platform remove callback returning void 2023-03-17 23:03:18 +01:00
rtc-test.c
rtc-ti-k3.c rtc: Explicitly include correct DT includes 2023-07-27 23:31:29 +02:00
rtc-tps6586x.c rtc: tps6586x: Report maximum alarm limit to rtc core 2023-08-27 23:50:22 +02:00
rtc-tps65910.c rtc: tps65910: Remove redundant dev_warn() and do not check for 0 return after calling platform_get_irq() 2023-08-17 01:17:34 +02:00
rtc-twl.c rtc: twl: remove unnecessary messages 2023-09-06 01:26:04 +02:00
rtc-vt8500.c rtc: vt8500: Convert to platform remove callback returning void 2023-03-17 23:03:18 +01:00
rtc-wilco-ec.c
rtc-wm831x.c
rtc-wm8350.c rtc: wm8350: remove unnecessary messages 2023-09-06 01:26:04 +02:00
rtc-x1205.c rtc: Switch i2c drivers back to use .probe() 2023-06-06 23:29:37 +02:00
rtc-xgene.c rtc: xgene: Convert to platform remove callback returning void 2023-03-17 23:03:18 +01:00
rtc-zynqmp.c rtc: zynqmp: Convert to platform remove callback returning void 2023-03-17 23:03:19 +01:00
sysfs.c rtc: Include <linux/kstrtox.h> when appropriate 2022-11-15 21:01:51 +01:00