Răsfoiți Sursa

Watchdog: sb_wdog.c: Fix sibyte watchdog initialization

Watchdog configuration register and timer count register were interchanged,
causing wrong values to be written into both registers.
This caused watchdog triggered resets even if the watchdog was reset in time.

Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Guenter Roeck 15 ani în urmă
părinte
comite
86913315de
1 a modificat fișierele cu 2 adăugiri și 2 ștergeri
  1. 2 2
      drivers/watchdog/sb_wdog.c

+ 2 - 2
drivers/watchdog/sb_wdog.c

@@ -67,8 +67,8 @@ static DEFINE_SPINLOCK(sbwd_lock);
 void sbwdog_set(char __iomem *wdog, unsigned long t)
 void sbwdog_set(char __iomem *wdog, unsigned long t)
 {
 {
 	spin_lock(&sbwd_lock);
 	spin_lock(&sbwd_lock);
-	__raw_writeb(0, wdog - 0x10);
-	__raw_writeq(t & 0x7fffffUL, wdog);
+	__raw_writeb(0, wdog);
+	__raw_writeq(t & 0x7fffffUL, wdog - 0x10);
 	spin_unlock(&sbwd_lock);
 	spin_unlock(&sbwd_lock);
 }
 }