Skip to contentSkip to conversation

bcm63xx: fix soft-reset lockup on BCM6345

PATCH In review Florian Fainelli 1 participant 1 message Aug 31, 2009 MIPS

lore
Share & tools
lore
#0 lore raw

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

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.

---

arch/mips/bcm63xx/setup.c +3 -1
index b18a0ca..d005659 100644
@@ -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)
 		;
 }