linux/drivers/rtc
Alexandre Belloni b3a5016976 rtc: ds1307: properly handle oscillator failure flags
Stop enabling the oscillator and removing the oscillator failure flags in
probe. Instead, return -EINVAL in .read_time when the oscillaotr is not
start or when it failed at some point. The oscillator gets enabled on the
first .set_time after failure and the failure flags are cleared.

This also removes the possibility of an infinite loop at probe where a
failing RTC will make the goto read_rtc to be taken every time.

Tested on mcp79411.

Reported-by: Mastro Gippo <gipmad@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2019-05-23 17:53:03 +02:00
..
class.c rtc: core: correct trivial checkpatch warnings 2019-04-04 10:07:08 +02:00
dev.c rtc: core: correct trivial checkpatch warnings 2019-04-04 10:07:08 +02:00
hctosys.c rtc: core: correct trivial checkpatch warnings 2019-04-04 10:07:08 +02:00
interface.c rtc: drop set_mms and set_mmss64 2019-05-08 22:14:36 +02:00
Kconfig RTC for 5.2 2019-05-09 14:46:33 -07:00
lib.c rtc: lib: check whether tm->tm_year in int32 range 2019-04-06 15:05:31 +02:00
Makefile rtc: Add ASPEED RTC driver 2019-04-04 10:07:10 +02:00
nvmem.c rtc: core: correct trivial checkpatch warnings 2019-04-04 10:07:08 +02:00
proc.c rtc: core: correct trivial checkpatch warnings 2019-04-04 10:07:08 +02:00
rtc-88pm80x.c rtc: 88pm80x: convert to SPDX identifier 2019-04-04 10:07:08 +02:00
rtc-88pm860x.c rtc: 88pm860x: prevent use-after-free on device remove 2019-04-29 15:53:43 +02:00
rtc-ab3100.c rtc: ab3100: convert to SPDX identifier 2019-04-11 16:42:55 +02:00
rtc-ab8500.c rtc: ab8500: remove useless check 2018-09-28 14:36:49 +02:00
rtc-ab-b5ze-s3.c rtc: ab-b5ze-s3: correct checkpatch issues 2019-04-04 10:07:08 +02:00
rtc-ab-eoz9.c rtc: add AB-RTCMC-32.768kHz-EOZ9 RTC support 2019-02-18 22:39:30 +01:00
rtc-abx80x.c rtc: abx80x: remove useless .remove 2019-03-18 03:36:01 +01:00
rtc-ac100.c treewide: Use struct_size() for devm_kmalloc() and friends 2018-06-06 11:15:43 -07:00
rtc-armada38x.c rtc: armada38x: switch to rtc_time64_to_tm/rtc_tm_to_time64 2018-09-28 14:21:03 +02:00
rtc-as3722.c
rtc-asm9260.c
rtc-aspeed.c rtc: Add ASPEED RTC driver 2019-04-04 10:07:10 +02:00
rtc-at91rm9200.c rtc: at91rm9200: Switch to use %ptR 2018-12-10 22:39:39 +01:00
rtc-at91rm9200.h
rtc-at91sam9.c rtc: at91sam9: correct trivial checkpatch warnings 2019-04-04 10:07:09 +02:00
rtc-au1xxx.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-bq32k.c rtc: remove VLA usage 2018-03-17 14:20:56 +01:00
rtc-bq4802.c rtc: bq4802: add error handling for devm_ioremap 2018-07-11 20:41:01 +02:00
rtc-brcmstb-waketimer.c rtc: brcmstb-waketimer: switch to rtc_time64_to_tm 2019-04-04 10:07:10 +02:00
rtc-cadence.c rtc: Add Cadence RTC driver 2019-01-22 19:18:27 +01:00
rtc-cmos.c rtc: cmos: Do not export alarm rtc_ops when we do not support alarms 2018-11-07 17:13:55 +01:00
rtc-coh901331.c rtc: coh901331: convert to SPDX identifier 2019-04-08 14:40:12 +02:00
rtc-core.h rtc: move rtc_add_group/s definitions 2018-09-28 14:20:59 +02:00
rtc-cpcap.c headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
rtc-cros-ec.c rtc: cros-ec: Fail suspend/resume if wake IRQ can't be configured 2019-03-20 11:36:46 +01:00
rtc-da9052.c rtc: diasemi: stop validating rtc_time in .read_time 2018-03-02 10:11:02 +01:00
rtc-da9055.c rtc: diasemi: stop validating rtc_time in .read_time 2018-03-02 10:11:02 +01:00
rtc-da9063.c RTC for 5.2 2019-05-09 14:46:33 -07:00
rtc-davinci.c
rtc-digicolor.c rtc: digicolor: convert to SPDX identifier 2019-05-08 22:14:31 +02:00
rtc-dm355evm.c rtc: dm355evm: convert to SPDX identifier 2019-04-04 10:07:09 +02:00
rtc-ds1216.c rtc: simplify getting .drvdata 2018-05-03 22:08:00 +02:00
rtc-ds1286.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-ds1302.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-ds1305.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-ds1307.c rtc: ds1307: properly handle oscillator failure flags 2019-05-23 17:53:03 +02:00
rtc-ds1343.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-ds1347.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-ds1374.c *: convert stream-like files from nonseekable_open -> stream_open 2019-05-06 17:46:41 +03:00
rtc-ds1390.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-ds1511.c rtc: simplify getting .drvdata 2018-05-03 22:08:00 +02:00
rtc-ds1553.c rtc: simplify getting .drvdata 2018-05-03 22:08:00 +02:00
rtc-ds1672.c rtc: ds1672: switch debug message to %ptR 2019-04-08 14:35:46 +02:00
rtc-ds1685.c rtc: ds1685: use threaded interrupt 2019-04-16 18:03:48 +02:00
rtc-ds1742.c rtc: ds1742: don't explicitly specify word_size and stride of nvmem 2018-05-21 22:34:36 +02:00
rtc-ds2404.c rtc: ds2404: use hw endiannes variable 2019-05-23 17:42:25 +02:00
rtc-ds3232.c rtc: ds3232: get SRAM access using NVMEM Framework 2019-04-19 22:36:55 +02:00
rtc-efi-platform.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rtc-efi.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-em3027.c rtc: constify i2c_device_id 2017-09-01 01:10:11 +02:00
rtc-ep93xx.c rtc: ep93xx: fix checkpatch issues 2019-04-19 22:37:16 +02:00
rtc-fm3130.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-ftrtc010.c headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
rtc-generic.c
rtc-goldfish.c rtc: goldfish: convert to SPDX identifier 2019-04-04 10:07:09 +02:00
rtc-hid-sensor-time.c rtc: Use dev_get_drvdata() 2019-04-29 15:53:43 +02:00
rtc-hym8563.c rtc: hym8563: fix a missing check of block data read 2019-01-22 19:03:43 +01:00
rtc-imx-sc.c rtc: imx-sc: use rtc_time64_to_tm 2019-03-03 22:12:38 +01:00
rtc-imxdi.c rtc: imxdi: remove unused variable 2019-05-08 22:14:36 +02:00
rtc-isl1208.c rtc: isl1208: Add new style nvmem support to driver 2019-02-17 21:29:10 +01:00
rtc-isl12022.c rtc: isl12022: use true and false for boolean values 2018-04-03 16:40:46 +02:00
rtc-isl12026.c rtc: isl12026: fixup nvmem registration 2018-03-17 14:20:51 +01:00
rtc-jz4740.c rtc: jz4740: convert to SPDX identifier 2019-04-30 11:50:24 +02:00
rtc-lp8788.c
rtc-lpc24xx.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-lpc32xx.c rtc: lpc32xx: convert to SPDX identifier 2019-04-12 12:23:20 +02:00
rtc-ls1x.c rtc: ls1x: add range 2018-05-18 09:38:22 +02:00
rtc-m41t80.c *: convert stream-like files from nonseekable_open -> stream_open 2019-05-06 17:46:41 +03:00
rtc-m41t93.c rtc: m41t93: stop validating rtc_time in .read_time 2018-03-02 10:12:19 +01:00
rtc-m41t94.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-m48t35.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-m48t59.c rtc: m48t59: Switch to use %ptR 2018-12-10 22:39:49 +01:00
rtc-m48t86.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-max6900.c rtc: max6900: remove useless indirection 2018-03-17 14:20:46 +01:00
rtc-max6902.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-max6916.c rtc: clean up indentation issues, remove extraneous space, add missing tabs 2018-11-12 23:14:07 +01:00
rtc-max8907.c
rtc-max8925.c rtc: max8925: remove redundant check on ret 2017-07-31 00:17:48 +02:00
rtc-max8997.c rtc: max8997: Fix the returned value in case of error in 'max8997_rtc_read_alarm()' 2018-11-22 18:11:35 +01:00
rtc-max8998.c rtc: maxim: Add SPDX license identifiers 2018-08-14 23:38:45 +02:00
rtc-max77686.c rtc: max77686: Fix the returned value in case of error in 'max77686_rtc_read_time()' 2018-11-14 10:44:43 +01:00
rtc-mc13xxx.c rtc: mc13xxx: fix style issue 2019-04-16 18:06:54 +02:00
rtc-mc146818-lib.c rtc: cmos: ignore bogus century byte 2019-01-22 19:05:32 +01:00
rtc-mcp795.c rtc: mcp795: Switch to use %ptR 2018-12-10 22:39:52 +01:00
rtc-meson.c rtc: meson: remove useless rtc_nvmem_unregister call 2019-02-17 21:28:39 +01:00
rtc-moxart.c
rtc-mpc5121.c rtc: stop validating rtc_time after rtc_time_to_tm 2018-03-01 10:49:41 +01:00
rtc-mrst.c rtc: mrst: remove set but not used variable 'valid' 2018-08-31 11:17:41 +02:00
rtc-msm6242.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-mt6397.c rtc: mt6397: Don't call irq_dispose_mapping. 2019-04-04 10:07:10 +02:00
rtc-mt7622.c rtc: mt7622: fix module autoloading for OF platform drivers 2018-04-03 16:40:48 +02:00
rtc-mv.c rtc: mv: add range 2019-04-04 10:06:54 +02:00
rtc-mxc_v2.c rtc: mxc_v2: use dev_pm_set_wake_irq() to simplify code 2019-04-11 23:18:33 +02:00
rtc-mxc.c rtc: mxc: use .set_time 2019-04-29 15:53:43 +02:00
rtc-nuc900.c rtc: nuc900: stop validating rtc_time in .read_time 2018-03-02 10:12:17 +01:00
rtc-omap.c ARM: SoC-related driver updates 2019-05-16 09:19:14 -07:00
rtc-opal.c rtc: opal: Make opal_tpo_alarm_irq_enable static 2019-04-04 10:07:10 +02:00
rtc-palmas.c
rtc-pcap.c rtc: pcap: convert to SPDX identifier 2019-05-08 22:14:36 +02:00
rtc-pcf2123.c rtc: pcf2123: Add Microcrystal rv2123 2018-12-18 22:53:35 +01:00
rtc-pcf2127.c rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write 2018-11-07 17:13:56 +01:00
rtc-pcf8523.c rtc: pcf8523: set xtal load capacitance from DT 2019-01-22 18:57:08 +01:00
rtc-pcf8563.c rtc: pcf8563: don't alway enable the alarm 2017-11-09 01:16:36 +01:00
rtc-pcf8583.c
rtc-pcf50633.c rtc: pcf50633: Switch to use %ptR 2018-12-10 22:39:54 +01:00
rtc-pcf85063.c rtc: pcf85063: add RTC_VL_READ/RTC_VL_CLR support 2019-04-04 10:07:11 +02:00
rtc-pcf85363.c rtc: pcf85363: convert to SPDX identifier 2019-04-11 16:42:55 +02:00
rtc-pic32.c rtc: pic32: convert to SPDX identifier 2019-03-04 20:23:15 +01:00
rtc-pl030.c rtc: pl030: fix possible race condition 2018-09-11 13:56:35 +02:00
rtc-pl031.c rtc: pl031: switch to devm_rtc_allocate_device/rtc_register_device 2018-09-11 13:56:35 +02:00
rtc-pm8xxx.c rtc: pm8xxx: fix unintended sign extension 2019-02-08 09:30:13 +01:00
rtc-ps3.c rtc: ps3: set range 2019-04-04 10:07:10 +02:00
rtc-puv3.c rtc: puv3: Switch to use %ptR 2018-12-10 22:40:01 +01:00
rtc-pxa.c rtc: Use dev_get_drvdata() 2019-04-29 15:53:43 +02:00
rtc-r7301.c headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
rtc-r9701.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-rc5t583.c
rtc-rk808.c rtc: Use dev_get_drvdata() 2019-04-29 15:53:43 +02:00
rtc-rp5c01.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-rs5c313.c
rtc-rs5c348.c rtc: rs5c348: report error when time is invalid 2018-09-28 14:21:03 +02:00
rtc-rs5c372.c rtc: rs5c372: Fix reading from rtc when the oscillator got interrupted. 2019-02-11 09:41:21 +01:00
rtc-rtd119x.c rtc: Add Realtek RTD1295 2017-09-05 09:55:02 +02:00
rtc-rv3028.c rtc: rv3028: add new driver 2019-02-17 21:29:10 +01:00
rtc-rv3029c2.c rtc: rv3029: Clean up error handling in rv3029_eeprom_write() 2017-10-12 16:24:19 +02:00
rtc-rv8803.c rtc: update my email address 2019-03-04 20:21:19 +01:00
rtc-rx4581.c rtc: rx4581: remove useless message 2018-03-02 10:12:24 +01:00
rtc-rx6110.c rtc: rx6110: declare missing of table 2019-04-29 15:53:42 +02:00
rtc-rx8010.c rtc: stop validating rtc_time in .read_time 2018-03-02 10:09:58 +01:00
rtc-rx8025.c rtc: rx8025: Fix a parameter to %ptR in rx8025_read_alarm() 2019-04-11 23:18:30 +02:00
rtc-rx8581.c rtc: rx8581: Add support for Epson rx8571 RTC 2019-03-02 22:20:58 +01:00
rtc-s3c.c rtc: s3c: Use generic helper to get driver data 2019-01-22 18:36:27 +01:00
rtc-s3c.h
rtc-s5m.c rtc: s5m: Switch to use %ptR 2018-12-10 22:40:10 +01:00
rtc-s35390a.c rtc: s35390a: change FLAG defines to use BIT macro 2019-05-23 17:48:03 +02:00
rtc-sa1100.c rtc: sa1100: don't set PIE frequency 2018-07-25 15:29:43 +02:00
rtc-sa1100.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rtc-sc27xx.c rtc: sc27xx: Always read normal alarm when registering RTC device 2018-10-25 02:35:42 +02:00
rtc-sd3078.c rtc: sd3078: fix platform_no_drv_owner.cocci warnings 2019-01-23 15:42:31 +01:00
rtc-sh.c RTC for 5.2 2019-05-09 14:46:33 -07:00
rtc-sirfsoc.c rtc: sirfsoc: Make sysrtc_regmap_config static 2019-04-11 23:18:27 +02:00
rtc-snvs.c rtc: snvs: Use __maybe_unused instead of #if CONFIG_PM_SLEEP 2019-05-08 22:14:36 +02:00
rtc-spear.c rtc: spear: stop validating rtc_time in .set_time and .set_alarm 2018-03-02 10:12:21 +01:00
rtc-st-lpc.c rtc: st-lpc: add range 2018-05-23 09:26:19 +02:00
rtc-starfire.c rtc: stop validating rtc_time after rtc_time_to_tm 2018-03-01 10:49:41 +01:00
rtc-stk17ta8.c rtc: simplify getting .drvdata 2018-05-03 22:08:00 +02:00
rtc-stm32.c rtc: stm32: manage the get_irq probe defer case 2019-04-29 15:53:42 +02:00
rtc-stmp3xxx.c rtc: stmp3xxx: convert to SPDX identifier 2019-04-11 16:42:55 +02:00
rtc-sun4v.c rtc: sun4v: switch to SPDX identifier 2019-04-04 10:07:10 +02:00
rtc-sun6i.c rtc: sun6i: Expose internal oscillator through device tree 2018-12-06 18:13:46 +01:00
rtc-sunxi.c rtc: sunxi: fix possible race condition 2018-06-04 14:36:14 +02:00
rtc-tegra.c rtc: tegra: convert to SPDX identifier 2019-04-08 15:05:26 +02:00
rtc-test.c rtc: test: enable wakeup flags 2019-05-23 17:44:52 +02:00
rtc-tps6586x.c rtc: tps6586x: let the core handle rtc range 2018-05-17 22:54:24 +02:00
rtc-tps65910.c rtc: tps65910: add range 2018-05-17 22:37:11 +02:00
rtc-tps80031.c
rtc-twl.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
rtc-tx4939.c rtc: Use dev_get_drvdata() 2019-04-29 15:53:43 +02:00
rtc-v3020.c
rtc-vr41xx.c rtc: vr41xx: switch to rtc_time64_to_tm/rtc_tm_to_time64 2018-10-03 11:07:22 +02:00
rtc-vt8500.c
rtc-wilco-ec.c platform/chrome: wilco_ec: Standardize mailbox interface 2019-04-15 16:07:42 +02:00
rtc-wm831x.c rtc: Use dev_get_drvdata() 2019-04-29 15:53:43 +02:00
rtc-wm8350.c rtc: Use dev_get_drvdata() 2019-04-29 15:53:43 +02:00
rtc-x1205.c rtc: x1205: Add DT probing support 2019-04-04 10:07:08 +02:00
rtc-xgene.c rtc: xgene: use .set_time 2019-04-04 10:07:08 +02:00
rtc-zynqmp.c rtc: zynqmp: convert to SPDX identifier 2019-03-18 03:36:01 +01:00
sysfs.c rtc: core: correct trivial checkpatch warnings 2019-04-04 10:07:08 +02:00
systohc.c rtc: drop set_mms and set_mmss64 2019-05-08 22:14:36 +02:00