brcm47xx: make reboot a more reliable
authorHauke Mehrtens <hauke@hauke-m.de>
Mon, 7 Jul 2014 20:12:40 +0000 (20:12 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 7 Jul 2014 20:12:40 +0000 (20:12 +0000)
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 <hauke@hauke-m.de>
SVN-Revision: 41548

target/linux/brcm47xx/patches-3.10/190-make-reboot-more-reliable.patch [new file with mode: 0644]
target/linux/brcm47xx/patches-3.14/190-make-reboot-more-reliable.patch [new file with mode: 0644]

diff --git a/target/linux/brcm47xx/patches-3.10/190-make-reboot-more-reliable.patch b/target/linux/brcm47xx/patches-3.10/190-make-reboot-more-reliable.patch
new file mode 100644 (file)
index 0000000..052f4f7
--- /dev/null
@@ -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
+       }
diff --git a/target/linux/brcm47xx/patches-3.14/190-make-reboot-more-reliable.patch b/target/linux/brcm47xx/patches-3.14/190-make-reboot-more-reliable.patch
new file mode 100644 (file)
index 0000000..551c0ff
--- /dev/null
@@ -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
+       }