powerpc/watchdog: Don't enable interrupt on PPC64 BookE

Message ID 1362498769-438-1-git-send-email-Laurentiu.Tudor@freescale.com
State Accepted, archived
Commit 3978bdb4ed653342b0be66c031bf61b72cc55d60
Delegated to: Scott Wood
Headers show

Commit Message

Laurentiu TUDOR March 5, 2013, 3:52 p.m.
From: Tudor Laurentiu <laurentiu.tudor@freescale.com>

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>
 drivers/watchdog/booke_wdt.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)


diff --git a/drivers/watchdog/booke_wdt.c b/drivers/watchdog/booke_wdt.c
index c0bc92d..5eb2040 100644
--- a/drivers/watchdog/booke_wdt.c
+++ b/drivers/watchdog/booke_wdt.c
@@ -122,6 +122,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;
 	mtspr(SPRN_TCR, val);