]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
watchdog: renesas_wdt: don't keep timer value during suspend/resume
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Tue, 4 Dec 2018 12:01:46 +0000 (13:01 +0100)
committerWim Van Sebroeck <wim@linux-watchdog.org>
Sat, 22 Dec 2018 11:15:32 +0000 (12:15 +0100)
After discussing this mail thread [1] again, we concluded that giving
userspace enough time to prepare is our favourite option. So, do not
keep the time value when suspended but reset it when resuming.

[1] https://patchwork.kernel.org/patch/10252209/

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
drivers/watchdog/renesas_wdt.c

index c450e23e24a898529fe4710bf88af95b23c7b1a8..622ede529912f47011c42c8e30cf508fcc5a502d 100644 (file)
@@ -48,7 +48,6 @@ struct rwdt_priv {
        void __iomem *base;
        struct watchdog_device wdev;
        unsigned long clk_rate;
-       u16 time_left;
        u8 cks;
 };
 
@@ -268,10 +267,9 @@ static int __maybe_unused rwdt_suspend(struct device *dev)
 {
        struct rwdt_priv *priv = dev_get_drvdata(dev);
 
-       if (watchdog_active(&priv->wdev)) {
-               priv->time_left = readw(priv->base + RWTCNT);
+       if (watchdog_active(&priv->wdev))
                rwdt_stop(&priv->wdev);
-       }
+
        return 0;
 }
 
@@ -279,10 +277,9 @@ static int __maybe_unused rwdt_resume(struct device *dev)
 {
        struct rwdt_priv *priv = dev_get_drvdata(dev);
 
-       if (watchdog_active(&priv->wdev)) {
+       if (watchdog_active(&priv->wdev))
                rwdt_start(&priv->wdev);
-               rwdt_write(priv, priv->time_left, RWTCNT);
-       }
+
        return 0;
 }