From: Sebastian Siewior Date: Tue, 3 Mar 2015 16:45:43 +0000 (+0100) Subject: watchdog/imx_watchdog: do not set WCR_WDW X-Git-Tag: v2015.04-rc5~3^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5cab874052614fb130cd9b16fc6a3d27cae0741e;p=u-boot watchdog/imx_watchdog: do not set WCR_WDW 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 Acked-by: Stefano Babic --- diff --git a/drivers/watchdog/imx_watchdog.c b/drivers/watchdog/imx_watchdog.c index d5993b4d26..1d18d4b269 100644 --- a/drivers/watchdog/imx_watchdog.c +++ b/drivers/watchdog/imx_watchdog.c @@ -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