diff options
-rw-r--r-- | arch/mips/bcm47xx/setup.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c index 2b63e7e7d3d3..ad439c273003 100644 --- a/arch/mips/bcm47xx/setup.c +++ b/arch/mips/bcm47xx/setup.c | |||
@@ -59,12 +59,21 @@ static void bcm47xx_machine_restart(char *command) | |||
59 | switch (bcm47xx_bus_type) { | 59 | switch (bcm47xx_bus_type) { |
60 | #ifdef CONFIG_BCM47XX_SSB | 60 | #ifdef CONFIG_BCM47XX_SSB |
61 | case BCM47XX_BUS_TYPE_SSB: | 61 | case BCM47XX_BUS_TYPE_SSB: |
62 | ssb_watchdog_timer_set(&bcm47xx_bus.ssb, 3); | 62 | if (bcm47xx_bus.ssb.chip_id == 0x4785) |
63 | write_c0_diag4(1 << 22); | ||
64 | ssb_watchdog_timer_set(&bcm47xx_bus.ssb, 1); | ||
65 | if (bcm47xx_bus.ssb.chip_id == 0x4785) { | ||
66 | __asm__ __volatile__( | ||
67 | ".set\tmips3\n\t" | ||
68 | "sync\n\t" | ||
69 | "wait\n\t" | ||
70 | ".set\tmips0"); | ||
71 | } | ||
63 | break; | 72 | break; |
64 | #endif | 73 | #endif |
65 | #ifdef CONFIG_BCM47XX_BCMA | 74 | #ifdef CONFIG_BCM47XX_BCMA |
66 | case BCM47XX_BUS_TYPE_BCMA: | 75 | case BCM47XX_BUS_TYPE_BCMA: |
67 | bcma_chipco_watchdog_timer_set(&bcm47xx_bus.bcma.bus.drv_cc, 3); | 76 | bcma_chipco_watchdog_timer_set(&bcm47xx_bus.bcma.bus.drv_cc, 1); |
68 | break; | 77 | break; |
69 | #endif | 78 | #endif |
70 | } | 79 | } |