diff options
-rw-r--r-- | kernel/power/main.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/power/main.c b/kernel/power/main.c index 95bff23ecdaa..0b7476f5d2a6 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c | |||
@@ -635,6 +635,13 @@ static void __init test_wakealarm(struct rtc_device *rtc, suspend_state_t state) | |||
635 | } | 635 | } |
636 | if (status < 0) | 636 | if (status < 0) |
637 | printk(err_suspend, status); | 637 | printk(err_suspend, status); |
638 | |||
639 | /* Some platforms can't detect that the alarm triggered the | ||
640 | * wakeup, or (accordingly) disable it after it afterwards. | ||
641 | * It's supposed to give oneshot behavior; cope. | ||
642 | */ | ||
643 | alm.enabled = false; | ||
644 | rtc_set_alarm(rtc, &alm); | ||
638 | } | 645 | } |
639 | 646 | ||
640 | static int __init has_wakealarm(struct device *dev, void *name_ptr) | 647 | static int __init has_wakealarm(struct device *dev, void *name_ptr) |