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
..
2014-11-21 12:00:00 -08:00
2014-12-10 17:41:16 -08:00
2014-12-10 17:41:15 -08:00
2014-10-14 02:18:19 +02:00
2013-11-13 12:09:28 +09:00
2014-06-06 16:08:07 -07:00
2014-12-10 17:41:16 -08:00
2014-04-03 16:21:22 -07:00
2014-04-03 16:21:17 -07:00
2014-06-06 16:08:08 -07:00
2014-11-13 16:08:01 +01:00
2014-07-30 13:53:28 +02:00
2014-06-06 16:08:08 -07:00
2014-10-29 16:33:14 -07:00
2014-10-14 02:18:19 +02:00
2014-04-03 16:21:18 -07:00
2014-06-06 16:08:07 -07:00
2014-04-03 16:21:24 -07:00
2014-07-28 08:09:25 +01:00
2014-04-03 16:21:18 -07:00
2014-04-03 16:21:16 -07:00
2014-12-10 17:41:15 -08:00
2014-08-08 15:57:19 -07:00
2014-04-03 16:21:23 -07:00
2014-12-10 17:41:15 -08:00
2014-04-03 16:21:17 -07:00
2014-04-03 16:21:24 -07:00
2014-04-03 16:21:24 -07:00
2014-04-03 16:21:16 -07:00
2014-08-08 15:57:19 -07:00
2013-11-13 12:09:29 +09:00
2014-04-03 16:21:22 -07:00
2014-08-08 15:57:19 -07:00
2014-10-03 22:15:56 +01:00
2013-11-13 12:09:29 +09:00
2013-11-15 09:32:21 +09:00
2014-06-06 16:08:08 -07:00
2014-04-03 16:21:16 -07:00
2013-11-13 12:09:27 +09:00
2014-10-14 02:18:17 +02:00
2014-12-10 17:41:16 -08:00
2014-04-03 16:21:19 -07:00
2014-11-21 12:00:00 -08:00
2014-04-03 16:21:18 -07:00
2014-06-06 16:08:07 -07:00
2013-11-13 12:09:29 +09:00
2013-11-13 12:09:29 +09:00
2013-11-13 12:09:27 +09:00
2014-01-23 16:37:00 -08:00
2014-10-14 02:18:19 +02:00
2014-10-14 02:18:19 +02:00
2014-04-03 16:21:23 -07:00
2014-06-06 16:08:08 -07:00
2014-04-03 16:21:17 -07:00
2014-10-14 02:18:17 +02:00
2013-11-13 12:09:27 +09:00
2014-06-06 16:08:08 -07:00
2014-01-23 16:36:59 -08:00
2014-04-03 16:21:17 -07:00
2014-12-10 17:41:16 -08:00
2014-06-06 16:08:08 -07:00
2013-11-13 12:09:29 +09:00
2014-01-23 16:37:00 -08:00
2014-05-06 13:04:58 -07:00
2014-12-10 17:41:15 -08:00
2014-10-14 02:18:17 +02:00
2014-08-08 15:57:20 -07:00
2013-11-13 12:09:31 +09:00
2013-11-13 12:09:31 +09:00
2014-10-29 16:33:14 -07:00
2014-06-20 08:22:39 +08:00
2014-06-06 16:08:09 -07:00
2014-10-14 02:18:18 +02:00
2013-11-13 12:09:29 +09:00
2014-10-14 02:18:19 +02:00
2014-04-03 16:21:24 -07:00
2014-04-03 16:21:18 -07:00
2014-01-23 16:37:00 -08:00
2014-10-29 16:33:14 -07:00
2014-08-29 16:28:16 -07:00
2014-06-06 16:08:09 -07:00
2013-11-13 12:09:30 +09:00
2014-12-10 17:41:15 -08:00
2014-12-10 17:41:16 -08:00
2014-04-03 16:21:18 -07:00
2014-04-03 16:21:24 -07:00
2013-11-13 12:09:30 +09:00
2014-09-19 12:39:19 +02:00
2014-04-03 16:21:21 -07:00
2014-04-03 16:21:16 -07:00
2014-08-08 15:57:20 -07:00
2014-01-23 16:36:59 -08:00
2014-04-03 16:21:24 -07:00
2013-11-13 12:09:30 +09:00
2014-01-23 16:36:59 -08:00
2014-04-03 16:21:19 -07:00
2014-04-03 16:21:16 -07:00
2014-06-06 16:08:06 -07:00