From 0a5145e85175cbe4762f12364e45260f714a627a Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Mon, 7 Jul 2014 20:12:40 +0000 Subject: [PATCH] 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 SVN-Revision: 41548 --- .../190-make-reboot-more-reliable.patch | 17 +++++++++++++++++ .../190-make-reboot-more-reliable.patch | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 target/linux/brcm47xx/patches-3.10/190-make-reboot-more-reliable.patch create mode 100644 target/linux/brcm47xx/patches-3.14/190-make-reboot-more-reliable.patch 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 index 0000000000..052f4f75a5 --- /dev/null +++ b/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 + } 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 index 0000000000..551c0fff72 --- /dev/null +++ b/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 + }