]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
watchdog/imx_watchdog: do not set WCR_WDW
authorSebastian Siewior <bigeasy@linutronix.de>
Tue, 3 Mar 2015 16:45:43 +0000 (17:45 +0100)
committerLothar Waßmann <LW@KARO-electronics.de>
Tue, 1 Sep 2015 12:34:18 +0000 (14:34 +0200)
with WCR_WDW set, the watchdog won't trigger if we bootet linux and idle
around while the watchdog is not triggered. It seems the timer makes
progress very slowly if at all. I managed to remain 20minutes alive
while the timeout was set to 60secs. It reboots within 60secs if I start
a busyloop in userland (something like "while (1) { }").

While I don't see a reason why the WDT should not be running while the
CPU is in idle, I'm dropping this bit.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: Stefano Babic <sbabic@denx.de>
drivers/watchdog/imx_watchdog.c

index 3f6e5593ed0619aaa0dba7f812d8f7e85ac0ccdb..738437f69d86ba8bd002db97e92ad1b0802f983a 100644 (file)
@@ -20,7 +20,6 @@ struct watchdog_regs {
 #define WCR_WDE                0x04    /* WDOG enable */
 #define WCR_WDT                0x08
 #define WCR_SRS                0x10
-#define WCR_WDW                0x80
 #define SET_WCR_WT(x)  (x << 8)
 
 #ifdef CONFIG_IMX_WATCHDOG
@@ -47,7 +46,7 @@ void hw_watchdog_init(void)
 #endif
        timeout = (CONFIG_WATCHDOG_TIMEOUT_MSECS / 500) - 1;
        writew(WCR_WDZST | WCR_WDBG | WCR_WDE | WCR_WDT | WCR_SRS |
-               WCR_WDW | SET_WCR_WT(timeout), &wdog->wcr);
+               SET_WCR_WT(timeout), &wdog->wcr);
        hw_watchdog_reset();
 }
 #endif