From 1c1c6123f4a8c1c4e4ba4dd75715f6df0b341ee5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=BB=84=E6=B6=9B?= Date: Mon, 1 Aug 2011 00:24:19 +0800 Subject: [PATCH] Revert "temp revert alarm change" This reverts commit b283ec8cc448d5cfec727ce96eb633a23e267e0c. --- drivers/rtc/alarm.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/rtc/alarm.c b/drivers/rtc/alarm.c index b445a8675850..35b078d29adb 100644 --- a/drivers/rtc/alarm.c +++ b/drivers/rtc/alarm.c @@ -423,6 +423,7 @@ static int alarm_suspend(struct platform_device *pdev, pm_message_t state) if (rtc_current_time + 1 >= rtc_alarm_time) { pr_alarm(SUSPEND, "alarm about to go off\n"); memset(&rtc_alarm, 0, sizeof(rtc_alarm)); + rtc_time_to_tm(0, &rtc_alarm.time); rtc_alarm.enabled = 0; rtc_set_alarm(alarm_rtc_dev, &rtc_alarm); @@ -448,6 +449,7 @@ static int alarm_resume(struct platform_device *pdev) pr_alarm(SUSPEND, "alarm_resume(%p)\n", pdev); memset(&alarm, 0, sizeof(alarm)); + rtc_time_to_tm(0, &alarm.time); alarm.enabled = 0; rtc_set_alarm(alarm_rtc_dev, &alarm); @@ -461,6 +463,18 @@ static int alarm_resume(struct platform_device *pdev) return 0; } +static void alarm_shutdown(struct platform_device *pdev) +{ + struct rtc_wkalrm alarm; + + pr_alarm(FLOW, "alarm_shutdown(%p)\n", pdev); + + memset(&alarm, 0, sizeof(alarm)); + rtc_time_to_tm(0, &alarm.time); + alarm.enabled = 0; + rtc_set_alarm(alarm_rtc_dev, &alarm); +} + static struct rtc_task alarm_rtc_task = { .func = alarm_triggered_func }; @@ -520,6 +534,7 @@ static struct class_interface rtc_alarm_interface = { static struct platform_driver alarm_driver = { .suspend = alarm_suspend, .resume = alarm_resume, + .shutdown = alarm_shutdown, .driver = { .name = "alarm" } -- 2.34.1