linux/drivers/rtc
Xunlei Pang 6528b88995 rtc: refine rtc_timer_do_work() to consider other set alarm failures
rtc_timer_do_work() only judges -ETIME failure of__rtc_set_alarm(), but
doesn't handle other failures like -EIO, -EBUSY, etc.

If there is a failure other than -ETIME, the next rtc_timer will stay in
the timerqueue.  Then later rtc_timers will be enqueued directly because
they have a later expires time, so the alarm irq will never be programmed.

When such failures happen, this patch will retry __rtc_set_alarm(), if
still can't program the alarm time, it will remove current rtc_timer from
timerqueue and fetch next one, thus preventing it from affecting other rtc
timers.

Signed-off-by: Xunlei Pang <pang.xunlei@linaro.org>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Arnd Bergmann <arnd.bergmann@linaro.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-12-10 17:41:16 -08:00
..
class.c rtc: Update suspend/resume timing to use 64bit time 2014-11-21 12:00:00 -08:00
hctosys.c
interface.c rtc: refine rtc_timer_do_work() to consider other set alarm failures 2014-12-10 17:41:16 -08:00
Kconfig drivers/rtc/rtc-ds1374.c: add watchdog support 2014-12-10 17:41:15 -08:00
Makefile rtc: add driver for Maxim 77802 PMIC Real-Time-Clock 2014-10-14 02:18:19 +02:00
rtc-88pm80x.c drivers/rtc/rtc-88pm80x.c: use dev_get_platdata() 2013-11-13 12:09:28 +09:00
rtc-88pm860x.c drivers/rtc/rtc-88pm860x.c: add missing of_node_put() 2014-06-06 16:08:07 -07:00
rtc-ab3100.c
rtc-ab8500.c rtc/ab8500: set uie_unsupported flag 2014-12-10 17:41:16 -08:00
rtc-as3722.c drivers/rtc/rtc-as3722.c: use SIMPLE_DEV_PM_OPS macro 2014-04-03 16:21:22 -07:00
rtc-at32ap700x.c rtc: rtc-at32ap700x: remove unnecessary OOM messages 2014-04-03 16:21:17 -07:00
rtc-at91rm9200.c rtc: rtc-at91rm9200: fix infinite wait for ACKUPD irq 2014-06-06 16:08:08 -07:00
rtc-at91rm9200.h
rtc-at91sam9.c rtc: at91sam9: use clk API instead of relying on AT91_SLOW_CLOCK 2014-11-13 16:08:01 +01:00
rtc-au1xxx.c MIPS: Alchemy: introduce helpers to access SYS register block. 2014-07-30 13:53:28 +02:00
rtc-bfin.c drivers/rtc/rtc-bfin.c: do not abort when requesting irq fails 2014-06-06 16:08:08 -07:00
rtc-bq32k.c drivers/rtc/rtc-bq32k.c: fix register value 2014-10-29 16:33:14 -07:00
rtc-bq4802.c
rtc-cmos.c rtc-cmos: fix wakeup from S5 without CONFIG_PM_SLEEP 2014-10-14 02:18:19 +02:00
rtc-coh901331.c rtc: rtc-coh901331: use devm_ioremap_resource() 2014-04-03 16:21:18 -07:00
rtc-core.h
rtc-da9052.c drivers/rtc/rtc-da9052.c: ALARM causes interrupt storm 2014-06-06 16:08:07 -07:00
rtc-da9055.c drivers/rtc/rtc-da9055.c: remove use of regmap_irq_get_virq() 2014-04-03 16:21:24 -07:00
rtc-da9063.c mfd: da9063: Add support for AD silicon variant 2014-07-28 08:09:25 +01:00
rtc-davinci.c rtc: rtc-davinci: use devm_ioremap_resource() 2014-04-03 16:21:18 -07:00
rtc-dev.c
rtc-dm355evm.c
rtc-ds1216.c drivers/rtc/rtc-ds1216.c: use module_platform_driver_probe() 2013-07-03 16:08:00 -07:00
rtc-ds1286.c
rtc-ds1302.c
rtc-ds1305.c rtc: fix potential race condition 2014-04-03 16:21:16 -07:00
rtc-ds1307.c rtc: ds1307: add support for mcp7940x chips 2014-12-10 17:41:15 -08:00
rtc-ds1343.c drivers/rtc/rtc-ds1343.c: add support of nvram for maxim dallas rtc ds1343 2014-08-08 15:57:19 -07:00
rtc-ds1347.c rtc: add support for maxim dallas rtc ds1347 2014-04-03 16:21:23 -07:00
rtc-ds1374.c drivers/rtc/rtc-ds1374.c: add watchdog support 2014-12-10 17:41:15 -08:00
rtc-ds1390.c rtc: rtc-ds1390: remove unnecessary OOM messages 2014-04-03 16:21:17 -07:00
rtc-ds1511.c rtc: treewide: remove excess rtc_device validation 2014-04-03 16:21:24 -07:00
rtc-ds1553.c rtc: treewide: remove excess rtc_device validation 2014-04-03 16:21:24 -07:00
rtc-ds1672.c rtc: fix potential race condition 2014-04-03 16:21:16 -07:00
rtc-ds1742.c drivers/rtc/rtc-ds1742.c: revert "drivers/rtc/rtc-ds1742.c: remove redundant of_match_ptr() helper" 2014-08-08 15:57:19 -07:00
rtc-ds2404.c drivers/rtc/rtc-ds2404.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-ds3232.c drivers/rtc/rtc-ds3232.c: enable ds3232 to work as wakeup source 2014-04-03 16:21:22 -07:00
rtc-ds3234.c
rtc-efi-platform.c rtc: ia64: allow other architectures to use EFI RTC 2014-08-08 15:57:19 -07:00
rtc-efi.c Merge branch 'next' into efi-next-merge 2014-10-03 22:15:56 +01:00
rtc-em3027.c
rtc-ep93xx.c drivers/rtc/rtc-ep93xx.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-fm3130.c
rtc-generic.c
rtc-hid-sensor-time.c tree-wide: use reinit_completion instead of INIT_COMPLETION 2013-11-15 09:32:21 +09:00
rtc-hym8563.c drivers/rtc/rtc-hym8563.c: add optional clock-output-names property 2014-06-06 16:08:08 -07:00
rtc-imxdi.c drivers/rtc/rtc-imxdi.c: check the return value from clk_prepare_enable() 2014-04-03 16:21:16 -07:00
rtc-isl1208.c drivers/rtc/rtc-isl1208.c: use devm_* APIs 2013-11-13 12:09:27 +09:00
rtc-isl12022.c rtc: make of_device_ids const 2014-10-14 02:18:17 +02:00
rtc-isl12057.c drivers/rtc/rtc-isl12057.c: report error code upon failure in dev_err() calls 2014-12-10 17:41:16 -08:00
rtc-jz4740.c rtc: rtc-jz4740: use devm_ioremap_resource() 2014-04-03 16:21:19 -07:00
rtc-lib.c rtc/lib: Provide y2038 safe rtc_tm_to_time()/rtc_time_to_tm() replacement 2014-11-21 12:00:00 -08:00
rtc-lp8788.c
rtc-lpc32xx.c rtc: rtc-lpc32xx: remove unnecessary OOM messages 2014-04-03 16:21:18 -07:00
rtc-ls1x.c
rtc-m41t80.c drivers/rtc/rtc-m41t80.c: add support for MicroCrystal rv4162 2014-06-06 16:08:07 -07:00
rtc-m41t93.c
rtc-m41t94.c
rtc-m48t35.c drivers/rtc: Replace PTR_RET with PTR_ERR_OR_ZERO 2013-07-16 16:06:00 +09:30
rtc-m48t59.c drivers/rtc/rtc-m48t59.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-m48t86.c drivers/rtc/rtc-m48t86.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-max6900.c drivers/rtc/rtc-max6900.c: remove redundant checks 2013-11-13 12:09:27 +09:00
rtc-max6902.c
rtc-max8907.c rtc: max8907: weekday encoding fixes 2014-01-23 16:37:00 -08:00
rtc-max8925.c
rtc-max8997.c
rtc-max8998.c For the 3.11 merge we only have one new MFD driver for the Kontron PLD. 2013-07-10 11:10:27 -07:00
rtc-max77686.c rtc: max77686: Use ffs() to calculate tm_wday 2014-10-14 02:18:19 +02:00
rtc-max77802.c rtc: add driver for Maxim 77802 PMIC Real-Time-Clock 2014-10-14 02:18:19 +02:00
rtc-mc13xxx.c drivers/rtc/rtc-mc13xxx.c: fix potential race condition 2014-04-03 16:21:23 -07:00
rtc-mcp795.c drivers/rtc: add support for Microchip MCP795 2014-06-06 16:08:08 -07:00
rtc-moxart.c rtc: rtc-moxart: remove unnecessary OOM messages 2014-04-03 16:21:17 -07:00
rtc-mpc5121.c rtc: make of_device_ids const 2014-10-14 02:18:17 +02:00
rtc-mrst.c drivers/rtc/rtc-mrst.c: remove redundant dev_set_drvdata 2013-11-13 12:09:27 +09:00
rtc-msm6242.c
rtc-mv.c rtc: rtc-mv: make of_device_id array const 2014-06-06 16:08:08 -07:00
rtc-mxc.c drivers/rtc/rtc-mxc.c: check the return value from clk_prepare_enable() 2014-01-23 16:36:59 -08:00
rtc-nuc900.c rtc: rtc-nuc900: remove unnecessary OOM messages 2014-04-03 16:21:17 -07:00
rtc-omap.c rtc: omap: drop vendor-prefix from power-controller dt property 2014-12-10 17:41:16 -08:00
rtc-palmas.c rtc: rtc-palmas: make of_device_id array const 2014-06-06 16:08:08 -07:00
rtc-pcap.c
rtc-pcf2123.c drivers/rtc/rtc-pcf2123.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-pcf2127.c drivers/rtc/rtc-pcf2127.c: replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO 2014-01-23 16:37:00 -08:00
rtc-pcf8523.c drivers/rtc/rtc-pcf8523.c: fix month definition 2014-05-06 13:04:58 -07:00
rtc-pcf8563.c rtc: pcf8563: clear expired alarm at boot time 2014-12-10 17:41:15 -08:00
rtc-pcf8583.c rtc: use c99 initializers in structures 2014-10-14 02:18:17 +02:00
rtc-pcf50633.c
rtc-pcf85063.c rtc: add pcf85063 support 2014-08-08 15:57:20 -07:00
rtc-pl030.c drivers/rtc/rtc-pl030.c: use devm_kzalloc() instead of kmalloc() 2013-11-13 12:09:31 +09:00
rtc-pl031.c drivers/rtc/rtc-pl03x.c: remove unnecessary amba_set_drvdata() 2013-11-13 12:09:31 +09:00
rtc-pm8xxx.c drivers/rtc/rtc-pm8xxx.c: rework to support pm8941 rtc 2014-10-29 16:33:14 -07:00
rtc-proc.c
rtc-ps3.c
rtc-puv3.c drivers/rtc/rtc-puv3.c: remove "&dev->" for typo issue MIME-Version: 1.0 2014-06-20 08:22:39 +08:00
rtc-pxa.c drivers/rtc/rtc-pxa.c: make of_device_id array const 2014-06-06 16:08:09 -07:00
rtc-r9701.c
rtc-rc5t583.c
rtc-rk808.c RTC: RK808: add RTC driver for RK808 2014-10-14 02:18:18 +02:00
rtc-rp5c01.c
rtc-rs5c313.c
rtc-rs5c348.c drivers/rtc/rtc-rs5c348.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-rs5c372.c drivers/rtc/rtc-rs5c372.c: use %*ph to dump small buffers 2014-10-14 02:18:19 +02:00
rtc-rv3029c2.c drivers/rtc/rtc-rv3029c2.c: fix potential race condition 2014-04-03 16:21:24 -07:00
rtc-rx4581.c
rtc-rx8025.c rtc: rtc-rx8025: remove unnecessary OOM messages 2014-04-03 16:21:18 -07:00
rtc-rx8581.c drivers/rtc/rtc-rx8581.c: add SMBus-only adapters support 2014-01-23 16:37:00 -08:00
rtc-s3c.c drivers/rtc/rtc-s3c.c: fix initialization failure without rtc source clock 2014-10-29 16:33:14 -07:00
rtc-s3c.h
rtc-s5m.c drivers/rtc/rtc-s5m.c: re-add support for devices without irq specified 2014-08-29 16:28:16 -07:00
rtc-s35390a.c
rtc-sa1100.c drivers/rtc/rtc-sa1100.c: make of_device_id array const 2014-06-06 16:08:09 -07:00
rtc-sh.c drivers/rtc/rtc-sh.c: use dev_get_platdata() 2013-11-13 12:09:30 +09:00
rtc-sirfsoc.c drivers/rtc/rtc-sirfsoc.c: replace local_irq_disable by spin_lock_irq for SMP safety 2014-12-10 17:41:15 -08:00
rtc-snvs.c drivers/rtc/rtc-snvs: fix suspend/resume 2014-12-10 17:41:16 -08:00
rtc-spear.c rtc: rtc-spear: remove unnecessary OOM messages 2014-04-03 16:21:18 -07:00
rtc-starfire.c
rtc-stk17ta8.c rtc: treewide: remove excess rtc_device validation 2014-04-03 16:21:24 -07:00
rtc-stmp3xxx.c drivers/rtc/rtc-stmp3xxx.c: remove redundant of_match_ptr 2013-11-13 12:09:30 +09:00
rtc-sun4v.c
rtc-sun6i.c rtc: sun6i: Add sun6i RTC driver 2014-09-19 12:39:19 +02:00
rtc-sunxi.c rtc: sunxi: change compatibles 2014-04-03 16:21:21 -07:00
rtc-sysfs.c rtc: convert class code to use dev_groups 2013-07-29 13:10:58 -07:00
rtc-tegra.c
rtc-test.c rtc: fix potential race condition 2014-04-03 16:21:16 -07:00
rtc-tile.c
rtc-tps6586x.c
rtc-tps65910.c drivers/rtc/rtc-tps65910.c: fix potential NULL-pointer dereference 2014-08-08 15:57:20 -07:00
rtc-tps80031.c
rtc-twl.c drivers/rtc/rtc-twl.c: use devm_*() functions 2014-01-23 16:36:59 -08:00
rtc-tx4939.c rtc: treewide: remove excess rtc_device validation 2014-04-03 16:21:24 -07:00
rtc-v3020.c drivers/rtc/rtc-v3020.c: use dev_get_platdata() 2013-11-13 12:09:30 +09:00
rtc-vr41xx.c drivers/rtc/rtc-vr41xx.c: use devm_*() functions 2014-01-23 16:36:59 -08:00
rtc-vt8500.c rtc: rtc-vt8500: use devm_ioremap_resource() 2014-04-03 16:21:19 -07:00
rtc-wm831x.c
rtc-wm8350.c
rtc-x1205.c rtc: fix potential race condition 2014-04-03 16:21:16 -07:00
rtc-xgene.c drivers/rtc: add APM X-Gene SoC RTC driver 2014-06-06 16:08:06 -07:00
systohc.c