summaryrefslogtreecommitdiffstats
path: root/kernel/drivers/watchdog/omap_wdt.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/drivers/watchdog/omap_wdt.c')
-rw-r--r--kernel/drivers/watchdog/omap_wdt.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/drivers/watchdog/omap_wdt.c b/kernel/drivers/watchdog/omap_wdt.c
index 1e6be9e40..c9c97dacf 100644
--- a/kernel/drivers/watchdog/omap_wdt.c
+++ b/kernel/drivers/watchdog/omap_wdt.c
@@ -132,6 +132,13 @@ static int omap_wdt_start(struct watchdog_device *wdog)
pm_runtime_get_sync(wdev->dev);
+ /*
+ * Make sure the watchdog is disabled. This is unfortunately required
+ * because writing to various registers with the watchdog running has no
+ * effect.
+ */
+ omap_wdt_disable(wdev);
+
/* initialize prescaler */
while (readl_relaxed(base + OMAP_WATCHDOG_WPS) & 0x01)
cpu_relax();