diff options
| -rw-r--r-- | drivers/rtc/rtc-tps65910.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/rtc/rtc-tps65910.c b/drivers/rtc/rtc-tps65910.c index a9caf043b0c..cdbf1a2b251 100644 --- a/drivers/rtc/rtc-tps65910.c +++ b/drivers/rtc/rtc-tps65910.c @@ -25,6 +25,9 @@ #include <linux/pm_runtime.h> #include <linux/interrupt.h> #include <linux/mfd/tps65910.h> +#include <linux/wakelock.h> + +struct wake_lock rtc_wake_lock; struct tps65910_rtc { struct rtc_device *rtc; @@ -197,6 +200,7 @@ static irqreturn_t tps65910_rtc_interrupt(int irq, void *rtc) int ret; u32 rtc_reg; + wake_lock_timeout(&rtc_wake_lock, msecs_to_jiffies(2000)); ret = regmap_read(tps->regmap, TPS65910_RTC_STATUS, &rtc_reg); if (ret) return IRQ_NONE; @@ -285,6 +289,7 @@ static int tps65910_rtc_probe(struct platform_device *pdev) } platform_set_drvdata(pdev, tps_rtc); + wake_lock_init(&rtc_wake_lock, WAKE_LOCK_SUSPEND, "rtc_wake_lock"); return 0; } |