diff options
author | Tudor Laurentiu <laurentiu.tudor@freescale.com> | 2012-05-17 22:14:29 (GMT) |
---|---|---|
committer | Emil Medve <Emilian.Medve@Freescale.com> | 2013-03-21 18:42:11 (GMT) |
commit | 83e9fba88623359fd6da57d780e5045b735832f2 (patch) | |
tree | 6078ba3e684b543767e5f7a771aafa43c1916f47 /drivers/watchdog | |
parent | bb3a711df969212f42e49d233a0db5a1186bdfd2 (diff) | |
download | linux-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.c | 17 |
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); } |