Просмотр исходного кода

brcm47xx: make reboot a more reliable

A reboot is issued by setting the watchdog timer to a low value, when
the value is decreased from 1 to 0 by the hardware the system will
reboot. Setting this value to 1 does not work every time, it is a
little bit more reliable when setting it to 3. This timer runs with
some MHz or KHz so nobody will notice the increased waiting.

Signed-off-by: Hauke Mehrtens <[email protected]>

SVN-Revision: 41548
Hauke Mehrtens 11 лет назад
Родитель
Сommit
0a5145e851

+ 17 - 0
target/linux/brcm47xx/patches-3.10/190-make-reboot-more-reliable.patch

@@ -0,0 +1,17 @@
+--- a/arch/mips/bcm47xx/setup.c
++++ b/arch/mips/bcm47xx/setup.c
+@@ -56,12 +56,12 @@ static void bcm47xx_machine_restart(char
+ 	switch (bcm47xx_bus_type) {
+ #ifdef CONFIG_BCM47XX_SSB
+ 	case BCM47XX_BUS_TYPE_SSB:
+-		ssb_watchdog_timer_set(&bcm47xx_bus.ssb, 1);
++		ssb_watchdog_timer_set(&bcm47xx_bus.ssb, 3);
+ 		break;
+ #endif
+ #ifdef CONFIG_BCM47XX_BCMA
+ 	case BCM47XX_BUS_TYPE_BCMA:
+-		bcma_chipco_watchdog_timer_set(&bcm47xx_bus.bcma.bus.drv_cc, 1);
++		bcma_chipco_watchdog_timer_set(&bcm47xx_bus.bcma.bus.drv_cc, 3);
+ 		break;
+ #endif
+ 	}

+ 17 - 0
target/linux/brcm47xx/patches-3.14/190-make-reboot-more-reliable.patch

@@ -0,0 +1,17 @@
+--- a/arch/mips/bcm47xx/setup.c
++++ b/arch/mips/bcm47xx/setup.c
+@@ -59,12 +59,12 @@ static void bcm47xx_machine_restart(char
+ 	switch (bcm47xx_bus_type) {
+ #ifdef CONFIG_BCM47XX_SSB
+ 	case BCM47XX_BUS_TYPE_SSB:
+-		ssb_watchdog_timer_set(&bcm47xx_bus.ssb, 1);
++		ssb_watchdog_timer_set(&bcm47xx_bus.ssb, 3);
+ 		break;
+ #endif
+ #ifdef CONFIG_BCM47XX_BCMA
+ 	case BCM47XX_BUS_TYPE_BCMA:
+-		bcma_chipco_watchdog_timer_set(&bcm47xx_bus.bcma.bus.drv_cc, 1);
++		bcma_chipco_watchdog_timer_set(&bcm47xx_bus.bcma.bus.drv_cc, 3);
+ 		break;
+ #endif
+ 	}