kernel_optimize_test/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
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-88pm80x.c
rtc-88pm860x.c
rtc-ab3100.c
rtc-ab8500.c rtc/ab8500: set uie_unsupported flag 2014-12-10 17:41:16 -08:00
rtc-as3722.c
rtc-at32ap700x.c
rtc-at91rm9200.c
rtc-at91rm9200.h
rtc-at91sam9.c
rtc-au1xxx.c
rtc-bfin.c
rtc-bq32k.c
rtc-bq4802.c
rtc-cmos.c
rtc-coh901331.c
rtc-core.h
rtc-da9052.c
rtc-da9055.c
rtc-da9063.c
rtc-davinci.c
rtc-dev.c
rtc-dm355evm.c
rtc-ds1216.c
rtc-ds1286.c
rtc-ds1302.c
rtc-ds1305.c
rtc-ds1307.c rtc: ds1307: add support for mcp7940x chips 2014-12-10 17:41:15 -08:00
rtc-ds1343.c
rtc-ds1347.c
rtc-ds1374.c drivers/rtc/rtc-ds1374.c: add watchdog support 2014-12-10 17:41:15 -08:00
rtc-ds1390.c
rtc-ds1511.c
rtc-ds1553.c
rtc-ds1672.c
rtc-ds1742.c
rtc-ds2404.c
rtc-ds3232.c
rtc-ds3234.c
rtc-efi-platform.c
rtc-efi.c
rtc-em3027.c
rtc-ep93xx.c
rtc-fm3130.c
rtc-generic.c
rtc-hid-sensor-time.c
rtc-hym8563.c
rtc-imxdi.c
rtc-isl1208.c
rtc-isl12022.c
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-lib.c
rtc-lp8788.c
rtc-lpc32xx.c
rtc-ls1x.c
rtc-m41t80.c
rtc-m41t93.c
rtc-m41t94.c
rtc-m48t35.c
rtc-m48t59.c
rtc-m48t86.c
rtc-max6900.c
rtc-max6902.c
rtc-max8907.c
rtc-max8925.c
rtc-max8997.c
rtc-max8998.c
rtc-max77686.c
rtc-max77802.c
rtc-mc13xxx.c
rtc-mcp795.c
rtc-moxart.c
rtc-mpc5121.c
rtc-mrst.c
rtc-msm6242.c
rtc-mv.c
rtc-mxc.c
rtc-nuc900.c
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-pcap.c
rtc-pcf2123.c
rtc-pcf2127.c
rtc-pcf8523.c
rtc-pcf8563.c rtc: pcf8563: clear expired alarm at boot time 2014-12-10 17:41:15 -08:00
rtc-pcf8583.c
rtc-pcf50633.c
rtc-pcf85063.c
rtc-pl030.c
rtc-pl031.c
rtc-pm8xxx.c
rtc-proc.c
rtc-ps3.c
rtc-puv3.c
rtc-pxa.c
rtc-r9701.c
rtc-rc5t583.c
rtc-rk808.c
rtc-rp5c01.c
rtc-rs5c313.c
rtc-rs5c348.c
rtc-rs5c372.c
rtc-rv3029c2.c
rtc-rx4581.c
rtc-rx8025.c
rtc-rx8581.c
rtc-s3c.c
rtc-s3c.h
rtc-s5m.c
rtc-s35390a.c
rtc-sa1100.c
rtc-sh.c
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-starfire.c
rtc-stk17ta8.c
rtc-stmp3xxx.c
rtc-sun4v.c
rtc-sun6i.c
rtc-sunxi.c
rtc-sysfs.c
rtc-tegra.c
rtc-test.c
rtc-tile.c
rtc-tps6586x.c
rtc-tps65910.c
rtc-tps80031.c
rtc-twl.c
rtc-tx4939.c
rtc-v3020.c
rtc-vr41xx.c
rtc-vt8500.c
rtc-wm831x.c
rtc-wm8350.c
rtc-x1205.c
rtc-xgene.c
systohc.c