aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Crispin <[email protected]>2011-08-24 10:31:39 +0200
committerWim Van Sebroeck <[email protected]>2011-09-20 14:28:24 +0200
commit9cfce47b146cb492b8d5e7b40d6f7b3ea1963d50 (patch)
tree37019440c279b8fb9616c1a728f18b8a509ed50a
parentdbc018eca386b4e2670fc3116feada19f3db664c (diff)
watchdog: lantiq: fix watchdogs timeout handling
The enable function was using the global timeout variable for local operations. This resulted in the value of the global variable being corrupted, thus breaking the code. Signed-off-by: John Crispin <[email protected]> Signed-off-by: Thomas Langer <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]> Cc: [email protected] Cc: [email protected]
-rw-r--r--drivers/watchdog/lantiq_wdt.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/watchdog/lantiq_wdt.c b/drivers/watchdog/lantiq_wdt.c
index 7d82adac1cb2..102aed0efbf1 100644
--- a/drivers/watchdog/lantiq_wdt.c
+++ b/drivers/watchdog/lantiq_wdt.c
@@ -51,16 +51,16 @@ static int ltq_wdt_ok_to_close;
static void
ltq_wdt_enable(void)
{
- ltq_wdt_timeout = ltq_wdt_timeout *
+ unsigned long int timeout = ltq_wdt_timeout *
(ltq_io_region_clk_rate / LTQ_WDT_DIVIDER) + 0x1000;
- if (ltq_wdt_timeout > LTQ_MAX_TIMEOUT)
- ltq_wdt_timeout = LTQ_MAX_TIMEOUT;
+ if (timeout > LTQ_MAX_TIMEOUT)
+ timeout = LTQ_MAX_TIMEOUT;
/* write the first password magic */
ltq_w32(LTQ_WDT_PW1, ltq_wdt_membase + LTQ_WDT_CR);
/* write the second magic plus the configuration and new timeout */
ltq_w32(LTQ_WDT_SR_EN | LTQ_WDT_SR_PWD | LTQ_WDT_SR_CLKDIV |
- LTQ_WDT_PW2 | ltq_wdt_timeout, ltq_wdt_membase + LTQ_WDT_CR);
+ LTQ_WDT_PW2 | timeout, ltq_wdt_membase + LTQ_WDT_CR);
}
static void