diff options
Diffstat (limited to 'kernel/time/alarmtimer.c')
-rw-r--r-- | kernel/time/alarmtimer.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index 7fbba635a549..e840ed867a5d 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c | |||
@@ -271,11 +271,27 @@ static int alarmtimer_suspend(struct device *dev) | |||
271 | __pm_wakeup_event(ws, MSEC_PER_SEC); | 271 | __pm_wakeup_event(ws, MSEC_PER_SEC); |
272 | return ret; | 272 | return ret; |
273 | } | 273 | } |
274 | |||
275 | static int alarmtimer_resume(struct device *dev) | ||
276 | { | ||
277 | struct rtc_device *rtc; | ||
278 | |||
279 | rtc = alarmtimer_get_rtcdev(); | ||
280 | if (rtc) | ||
281 | rtc_timer_cancel(rtc, &rtctimer); | ||
282 | return 0; | ||
283 | } | ||
284 | |||
274 | #else | 285 | #else |
275 | static int alarmtimer_suspend(struct device *dev) | 286 | static int alarmtimer_suspend(struct device *dev) |
276 | { | 287 | { |
277 | return 0; | 288 | return 0; |
278 | } | 289 | } |
290 | |||
291 | static int alarmtimer_resume(struct device *dev) | ||
292 | { | ||
293 | return 0; | ||
294 | } | ||
279 | #endif | 295 | #endif |
280 | 296 | ||
281 | static void alarmtimer_freezerset(ktime_t absexp, enum alarmtimer_type type) | 297 | static void alarmtimer_freezerset(ktime_t absexp, enum alarmtimer_type type) |
@@ -800,6 +816,7 @@ out: | |||
800 | /* Suspend hook structures */ | 816 | /* Suspend hook structures */ |
801 | static const struct dev_pm_ops alarmtimer_pm_ops = { | 817 | static const struct dev_pm_ops alarmtimer_pm_ops = { |
802 | .suspend = alarmtimer_suspend, | 818 | .suspend = alarmtimer_suspend, |
819 | .resume = alarmtimer_resume, | ||
803 | }; | 820 | }; |
804 | 821 | ||
805 | static struct platform_driver alarmtimer_driver = { | 822 | static struct platform_driver alarmtimer_driver = { |