summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorZoran Markovic <zoran.markovic@linaro.org>2013-06-26 16:09:13 -0700
committerJohn Stultz <john.stultz@linaro.org>2013-07-22 09:38:25 -0700
commit14d0e347ea2db51144a8800d7c7576db96f69983 (patch)
treefd56f98424f8f9517ba6be8f8de4fb67147fe828 /kernel
parent07862c1cd6675cde2dd4bd64e64d704ea2185b79 (diff)
downloadlinux-14d0e347ea2db51144a8800d7c7576db96f69983.tar.bz2
rtc: Keep system awake until all expired RTC timers are handled
Current implementation of RTC interface allows for system suspend to occur in the following cases: (a) if a timer is set in the past and rtc_timer_do_work() is scheduled to handle it, and (b) if rtc_timer_do_work() is called to handle expired timers whose handlers implement a preemption point. A pending suspend request may be honoured in the above cases causing timer handling to be delayed until after the next resume. This is undesirable since timer handlers may have time-critical code to execute. This patch makes sure that the system stays awake until all expired timers are handled. Note that all calls to pm_stay_awake() are eventually paired with the single pm_relax() call in rtc_timer_do_work(), which is launched using schedule_work(). Cc: Alessandro Zummo <a.zummo@towertech.it> Cc: John Stultz <john.stultz@linaro.org> Cc: Arve Hjonnevag <arve@android.com> Cc: Todd Poynor <toddpoynor@google.com> Signed-off-by: Zoran Markovic <zoran.markovic@linaro.org> Signed-off-by: John Stultz <john.stultz@linaro.org>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions