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)  		__pm_wakeup_event(ws, MSEC_PER_SEC);  	return ret;  } + +static int alarmtimer_resume(struct device *dev) +{ +	struct rtc_device *rtc; + +	rtc = alarmtimer_get_rtcdev(); +	if (rtc) +		rtc_timer_cancel(rtc, &rtctimer); +	return 0; +} +  #else  static int alarmtimer_suspend(struct device *dev)  {  	return 0;  } + +static int alarmtimer_resume(struct device *dev) +{ +	return 0; +}  #endif  static void alarmtimer_freezerset(ktime_t absexp, enum alarmtimer_type type) @@ -800,6 +816,7 @@ out:  /* Suspend hook structures */  static const struct dev_pm_ops alarmtimer_pm_ops = {  	.suspend = alarmtimer_suspend, +	.resume = alarmtimer_resume,  };  static struct platform_driver alarmtimer_driver = { | 
