linux-stable/drivers/rtc
Mario Limonciello 49a76c08bc rtc: Extend timeout for waiting for UIP to clear to 1s
commit cef9ecc8e9 upstream.

Specs don't say anything about UIP being cleared within 10ms. They
only say that UIP won't occur for another 244uS. If a long NMI occurs
while UIP is still updating it might not be possible to get valid
data in 10ms.

This has been observed in the wild that around s2idle some calls can
take up to 480ms before UIP is clear.

Adjust callers from outside an interrupt context to wait for up to a
1s instead of 10ms.

Cc:  <stable@vger.kernel.org> # 6.1.y
Fixes: ec5895c0f2 ("rtc: mc146818-lib: extract mc146818_avoid_UIP")
Reported-by: Carsten Hatger <xmb8dsv4@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217626
Tested-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Reviewed-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Acked-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://lore.kernel.org/r/20231128053653.101798-5-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: Extend timeout for waiting for UIP to clear to 1s 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: digicolor: quiet maybe-unused variable warning 2021-02-06 00:58:24 +01:00
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: Extend timeout for waiting for UIP to clear to 1s 2024-01-31 16:18:56 -08: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: mv: remove mv_rtc_alarm_ops 2021-01-16 23:19:26 +01:00
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 amba: Make the remove callback return void 2021-02-02 14:25:50 +01:00
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: r7301: Replace spin_lock_irqsave with spin_lock in hard IRQ 2021-02-06 00:50:47 +01:00
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