summaryrefslogtreecommitdiff
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorTudor Laurentiu <laurentiu.tudor@freescale.com>2012-05-17 22:14:29 (GMT)
committerEmil Medve <Emilian.Medve@Freescale.com>2013-03-21 18:42:11 (GMT)
commit83e9fba88623359fd6da57d780e5045b735832f2 (patch)
tree6078ba3e684b543767e5f7a771aafa43c1916f47 /drivers/watchdog
parentbb3a711df969212f42e49d233a0db5a1186bdfd2 (diff)
downloadlinux-fsl-qoriq-83e9fba88623359fd6da57d780e5045b735832f2.tar.xz
powerpc/watchdog: Don't enable interrupt on PPC64 BookE
Critical interrupts are not handled on PPC64 BookE machines, so when the first watchdog interrupt fires the machine will freeze without a warning until it's rebooted by the second watchdog trigger. Plus, the interrupt isn't used anyway since the driver expects a usermode app to ping the watchdog periodically. Signed-off-by: Laurentiu Tudor <Laurentiu.Tudor@freescale.com>
Diffstat (limited to 'drivers/watchdog')
-rw-r--r--drivers/watchdog/booke_wdt.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/watchdog/booke_wdt.c b/drivers/watchdog/booke_wdt.c
index c0bc92d..c0e2309 100644
--- a/drivers/watchdog/booke_wdt.c
+++ b/drivers/watchdog/booke_wdt.c
@@ -92,6 +92,15 @@ static void __booke_wdt_set(void *data)
val = mfspr(SPRN_TCR);
val &= ~WDTP_MASK;
+
+#ifdef CONFIG_PPC_BOOK3E_64
+ /*
+ * Crit ints are currently broken on PPC64 Book-E, so
+ * just disable them for now.
+ */
+ val &= ~TCR_WIE;
+#endif
+
val |= WDTP(booke_wdt_period);
mtspr(SPRN_TCR, val);
@@ -122,6 +131,14 @@ static void __booke_wdt_enable(void *data)
val &= ~WDTP_MASK;
val |= (TCR_WIE|TCR_WRC(WRC_CHIP)|WDTP(booke_wdt_period));
+#ifdef CONFIG_PPC_BOOK3E_64
+ /*
+ * Crit ints are currently broken on PPC64 Book-E, so
+ * just disable them for now.
+ */
+ val &= ~TCR_WIE;
+#endif
+
mtspr(SPRN_TCR, val);
}