[PATCH 1/2] bcm63xx: fix soft-reset lockup on BCM6345

From: Florian Fainelli <florian@openwrt.org>
Date: 2009-08-31 18:27:54
Subsystem: mips, the rest · Maintainers: Thomas Bogendoerfer, Linus Torvalds

This patch fixes a lockup on BCM6345 where setting the
PLL soft reset bit will also lock the other blocks including UART.
Instead of setting only the PLL soft reset bit in the
software reset register, set this bit but do not touch
the others.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
---
diff --git a/arch/mips/bcm63xx/setup.c b/arch/mips/bcm63xx/setup.c
index b18a0ca..d005659 100644
--- a/arch/mips/bcm63xx/setup.c
+++ b/arch/mips/bcm63xx/setup.c
@@ -75,7 +75,9 @@ void bcm63xx_machine_reboot(void)
 		bcm6348_a1_reboot();
 
 	printk(KERN_INFO "triggering watchdog soft-reset...\n");
-	bcm_perf_writel(SYS_PLL_SOFT_RESET, PERF_SYS_PLL_CTL_REG);
+	reg = bcm_perf_readl(PERF_SYS_PLL_CTL_REG);
+	reg |= SYS_PLL_SOFT_RESET;
+	bcm_perf_writel(reg, PERF_SYS_PLL_CTL_REG);
 	while (1)
 		;
 }
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help