watchdog: renesas_wdt: add grace period before rebooting
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Mon, 18 Jan 2021 09:45:58 +0000 (10:45 +0100)
committerWim Van Sebroeck <wim@linux-watchdog.org>
Sun, 7 Feb 2021 13:41:22 +0000 (14:41 +0100)
arm64 does not have a grace period after calling reset handlers. It is
rightfully assumed that watchdog drivers should wait because they know
the time needed. Implement this for the Renesas watchdog driver.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Guenter Roeck <linux@oeck-us.net>
Link: https://lore.kernel.org/r/20210118094558.36814-1-wsa+renesas@sang-engineering.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 d2b5074bca65c71a4a24ded04e33535fadc5c2b0..5791198960e6c5bf6d766c7eb2f5450513230897 100644 (file)
@@ -151,6 +151,9 @@ static int rwdt_restart(struct watchdog_device *wdev, unsigned long action,
 
        rwdt_write(priv, RWTCSRA_TME, RWTCSRA);
 
+       /* wait 2 cycles, so watchdog will trigger */
+       udelay(DIV_ROUND_UP(2 * 1000000, priv->clk_rate));
+
        return 0;
 }