2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-15 08:44:14 +08:00
linux-next/drivers/rtc
Stefan Eichenberger 0462681e20 rtc: snvs: Allow a time difference on clock register read
On an iMX6ULL the following message appears when a wakealarm is set:

echo 0 > /sys/class/rtc/rtc1/wakealarm
rtc rtc1: Timeout trying to get valid LPSRT Counter read

This does not always happen but is reproducible quite often (7 out of 10
times). The problem appears because the iMX6ULL is not able to read the
registers within one 32kHz clock cycle which is the base clock of the
RTC. Therefore, this patch allows a difference of up to 320 cycles
(10ms). 10ms was chosen to be big enough even on systems with less cpu
power (e.g. iMX6ULL). According to the reference manual a difference is
fine:
- If the two consecutive reads are similar, the value is correct.
The values have to be similar, not equal.

Fixes: cd7f3a249d ("rtc: snvs: Add timeouts to avoid kernel lockups")
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Signed-off-by: Francesco Dolcini <francesco@dolcini.it>
Link: https://lore.kernel.org/r/20221106115915.7930-1-francesco@dolcini.it
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2022-11-15 21:25:44 +01:00
..
class.c rtc: class: Fix potential memleak in devm_rtc_allocate_device() 2022-11-15 21:01:51 +01:00
dev.c rtc: Remove unused rtc_dev_exit(). 2022-06-24 21:24:02 +02:00
interface.c rtc: check if __rtc_read_time was successful 2022-03-29 22:45:50 +02:00
Kconfig rtc: remove davinci rtc driver 2022-11-15 21:01:51 +01:00
lib_test.c rtc: lib_test: add MODULE_LICENSE 2021-08-10 23:21:46 +02:00
lib.c rtc: Improve performance of rtc_time64_to_tm(). Add tests. 2021-08-10 00:09:21 +02:00
Makefile rtc: remove davinci rtc driver 2022-11-15 21:01:51 +01:00
nvmem.c rtc: nvmem: emit an error message when nvmem registration fails 2020-11-19 12:50:12 +01:00
proc.c rtc: fix snprintf() checking in is_rtc_hctosys() 2021-05-25 00:36:11 +02:00
rtc-88pm80x.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-88pm860x.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-ab8500.c rtc: ab8500: let the core handle the alarm resolution 2021-11-10 00:45:57 +01:00
rtc-ab-b5ze-s3.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-ab-eoz9.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-abx80x.c rtc: Include <linux/kstrtox.h> when appropriate 2022-11-15 21:01:51 +01:00
rtc-ac100.c rtc: ac100: use rtc_lock/rtc_unlock 2021-01-25 23:45:37 +01:00
rtc-armada38x.c rtc: armada38x: remove armada38x_rtc_ops_noirq 2021-01-16 23:19:26 +01:00
rtc-as3722.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
rtc-asm9260.c rtc: asm9260: use rtc_lock/rtc_unlock 2021-01-25 23:46:16 +01:00
rtc-aspeed.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-at91rm9200.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-at91sam9.c rtc: at91sam9: Remove unnecessary offset variable checks 2021-07-10 02:42:08 +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: Include <linux/kstrtox.h> when appropriate 2022-11-15 21:01:51 +01:00
rtc-bq4802.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
rtc-brcmstb-waketimer.c rtc: brcmstb-waketimer: quiet maybe-unused variable warning 2021-02-06 00:58:24 +01:00
rtc-cadence.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-cmos.c rtc: cmos: Disable ACPI RTC event on removal 2022-11-15 21:07:14 +01:00
rtc-core.h rtc: Remove unused rtc_dev_exit(). 2022-06-24 21:24:02 +02:00
rtc-cpcap.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-cros-ec.c rtc: cros-ec: Limit RTC alarm range if needed 2022-11-15 21:01:51 +01:00
rtc-da9052.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-da9055.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rtc-da9063.c rtc: da9063: add as wakeup source 2021-12-02 23:23:38 +01:00
rtc-digicolor.c rtc: digicolor: quiet maybe-unused variable warning 2021-02-06 00:58:24 +01:00
rtc-dm355evm.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-ds1216.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-ds1286.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-ds1302.c rtc: ds1302: remove unnecessary spi_set_drvdata() 2022-11-15 21:01:51 +01:00
rtc-ds1305.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
rtc-ds1307.c rtc: Include <linux/kstrtox.h> when appropriate 2022-11-15 21:01:51 +01: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 i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
rtc-ds1390.c rtc: ds1390: Add SPI ID table 2021-09-25 23:22:28 +02:00
rtc-ds1511.c rtc: ds1511: remove unused function 2021-04-17 11:21:04 +02:00
rtc-ds1553.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-ds1672.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-ds1685.c rtc: ds1685: Fix spelling of function name in comment block 2022-10-13 00:21:28 +02:00
rtc-ds1742.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-ds2404.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-ds3232.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-efi.c rtc: efi: switch to RTC_FEATURE_UPDATE_INTERRUPT 2022-03-23 19:58:40 +01:00
rtc-em3027.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-ep93xx.c rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time 2020-12-03 23:49:31 +01:00
rtc-fm3130.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-fsl-ftm-alarm.c rtc: fsl-ftm-alarm: Use module_platform_driver replace device_initcall 2022-11-15 21:01:51 +01:00
rtc-ftrtc010.c rtc: ftrtc010: Fix error handling in ftrtc010_rtc_probe 2022-05-19 12:08:17 +02:00
rtc-gamecube.c rtc: gamecube: Always reset HW_SRNPROT after read 2022-08-23 22:27:58 +02:00
rtc-generic.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
rtc-goldfish.c clocksource/drivers: Add a goldfish-timer clocksource 2022-04-11 11:48:01 +02:00
rtc-hid-sensor-time.c iio: hid-sensors: lighten exported symbols by moving to IIO_HID namespace 2021-06-16 14:53:13 +01:00
rtc-hym8563.c rtc: use simple i2c probe 2022-06-24 21:24:02 +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: Convert to .probe_new() 2022-11-15 21:01:33 +01:00
rtc-isl12022.c rtc: isl12022: add support for temperature sensor 2022-11-15 21:01:51 +01:00
rtc-isl12026.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
rtc-jz4740.c rtc: jz4740: Use devm_clk_get_enabled() helper 2022-10-13 00:31:37 +02:00
rtc-lp8788.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-lpc24xx.c rtc: remove unnecessary error message after platform_get_irq 2020-04-15 09:56:17 +02:00
rtc-lpc32xx.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-ls1x.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-m41t80.c rtc: m41t80: Convert to .probe_new() 2022-11-15 21:01:33 +01:00
rtc-m41t93.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-m41t94.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-m48t35.c rtc: m48t35: remove SGI-IP27 kludge 2020-03-16 11:12:11 +01:00
rtc-m48t59.c rtc: m48t59: use platform_get_irq_optional 2021-03-11 09:48:09 +01:00
rtc-m48t86.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-max6900.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-max6902.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-max6916.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-max8907.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-max8925.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-max8997.c
rtc-max8998.c
rtc-max77686.c rtc: max77686: Add MAX77714 support 2022-03-07 13:55:04 +00:00
rtc-mc13xxx.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +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: rework rtc_register_device() resource management 2020-11-19 12:50:12 +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: Convert to SPDX identifier 2019-12-23 11:23:49 +01:00
rtc-mpc5121.c rtc: mpc5121: switch to RTC_FEATURE_UPDATE_INTERRUPT 2022-03-23 19:58:38 +01:00
rtc-mpfs.c rtc: mpfs: Use devm_clk_get_enabled() helper 2022-10-13 00:31:18 +02:00
rtc-msc313.c rtc: msc313: Fix unintentional sign extension issues with left shift of a u16 2021-10-01 23:28:46 +02:00
rtc-msm6242.c rtc: msm6242: Remove unneeded msm6242_set()/msm6242_clear() functions 2019-11-18 15:23:54 +01:00
rtc-mt2712.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-mt6397.c rtc: mt6397: check return value after calling platform_get_resource() 2022-05-19 12:05:48 +02:00
rtc-mt7622.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-mv.c rtc: mv: remove mv_rtc_alarm_ops 2021-01-16 23:19:26 +01:00
rtc-mxc_v2.c rtc: mxc_v2: add missing MODULE_DEVICE_TABLE 2021-05-25 00:33:17 +02:00
rtc-mxc.c rtc: mxc: Use devm_clk_get_enabled() helper 2022-08-23 22:33:38 +02:00
rtc-nct3018y.c rtc: nct3018y: Convert to .probe_new() 2022-11-15 21:01:33 +01:00
rtc-ntxec.c rtc: New driver for RTC in Netronix embedded controller 2021-03-10 11:06:33 +00:00
rtc-omap.c rtc: omap: drop unneeded MODULE_ALIAS 2021-09-25 23:26:37 +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 SPDX identifier 2021-07-10 01:53:39 +02:00
rtc-pcap.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-pcf2123.c rtc: pcf2123: set RTC_FEATURE_ALARM_RES_MINUTE 2022-03-23 19:58:39 +01:00
rtc-pcf2127.c rtc: pcf2127: Convert to .probe_new() 2022-11-15 21:01:33 +01:00
rtc-pcf8523.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-pcf8563.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-pcf8583.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-pcf50633.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rtc-pcf85063.c rtc: pcf85063: Add a compatible entry for pca85073a 2022-05-18 00:15:50 +02:00
rtc-pcf85363.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-pic32.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +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: drop unused pm8018 compatible 2022-11-15 21:01:51 +01:00
rtc-ps3.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-pxa.c ARM: pxa: split up mach/hardware.h 2022-04-19 16:27:05 +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: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-rc5t583.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
rtc-rc5t619.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-rk808.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-rp5c01.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-rs5c313.c rtc: rtc-rs5c313: Convert to module_platform_driver() 2020-08-21 00:13:44 +02:00
rtc-rs5c348.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-rs5c372.c rtc: rs5c372: Convert to .probe_new() 2022-11-15 21:01:33 +01:00
rtc-rtd119x.c rtc: rtd119x: Fix format of SPDX identifier 2021-07-10 01:53:39 +02:00
rtc-rv3028.c rtc: rv3028: Fix codestyle errors 2022-10-13 23:36:52 +02:00
rtc-rv3029c2.c rtc: Include <linux/kstrtox.h> when appropriate 2022-11-15 21:01:51 +01:00
rtc-rv3032.c rtc: rv3032: let the core handle the alarm resolution 2021-11-10 00:45:57 +01:00
rtc-rv8803.c rtc: rv8803: Convert to .probe_new() 2022-11-15 21:01:33 +01:00
rtc-rx4581.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-rx6110.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-rx8010.c rtc: rx8010: quiet maybe-unused variable warning 2021-02-06 00:58:25 +01:00
rtc-rx8025.c rtc: Include <linux/kstrtox.h> when appropriate 2022-11-15 21:01:51 +01:00
rtc-rx8581.c rtc: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-rzn1.c rtc: rzn1: Check return value in rzn1_rtc_probe 2022-11-15 21:01:51 +01:00
rtc-s3c.c rtc: s3c: Switch to use dev_err_probe() helper 2022-11-15 21:01:51 +01:00
rtc-s3c.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-s5m.c rtc: s5m: drop unneeded MODULE_ALIAS 2021-09-25 23:26:37 +02:00
rtc-s35390a.c rtc: s35390a: Remove the unneeded result variable 2022-11-15 21:01:51 +01:00
rtc-sa1100.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +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: use simple i2c probe 2022-06-24 21:24:02 +02:00
rtc-sh.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
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: set range max 2022-08-09 00:56:41 +02:00
rtc-st-lpc.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-starfire.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-stk17ta8.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-stm32.c rtc: stm32: Fix unbalanced clk_disable_unprepare() on probe error path 2021-06-20 22:28:02 +02:00
rtc-stmp3xxx.c rtc: stmp3xxx: Add failure handling for stmp3xxx_wdt_register() 2022-10-13 00:03:11 +02:00
rtc-sun4v.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-sun6i.c rtc: sun6i: add support for R329 RTC 2022-07-26 11:17:01 +02:00
rtc-sunplus.c rtc: sunplus: fix return value in sp_rtc_probe() 2022-01-16 23:50:34 +01:00
rtc-sunxi.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-tegra.c rtc: tegra: Replace spin_lock_irqsave with spin_lock in hard IRQ 2021-02-06 00:50:47 +01:00
rtc-test.c rtc: test: remove debug message 2020-12-03 23:43:23 +01:00
rtc-ti-k3.c rtc: k3: Use devm_clk_get_enabled() helper 2022-10-13 00:31:57 +02:00
rtc-tps6586x.c rtc: tps6586x: convert to SPDX identifier 2021-07-10 01:53:40 +02:00
rtc-tps65910.c rtc: tps65910: Correct driver module alias 2021-08-17 23:36:22 +02:00
rtc-twl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rtc-v3020.c rtc: v3020: remove redundant initialization of variable retval 2021-06-20 22:29:50 +02:00
rtc-vt8500.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-wilco-ec.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-wm831x.c rtc: rework rtc_register_device() resource management 2020-11-19 12:50:12 +01:00
rtc-wm8350.c rtc: wm8350: Handle error for wm8350_register_irq 2022-03-23 19:58:38 +01:00
rtc-x1205.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
rtc-xgene.c rtc: xgene: stop using uie_unsupported 2022-03-23 19:58:41 +01:00
rtc-zynqmp.c rtc: zynqmp: initialize fract_tick 2022-08-08 20:35:41 +02:00
sysfs.c rtc: Include <linux/kstrtox.h> when appropriate 2022-11-15 21:01:51 +01:00