diff options
Diffstat (limited to 'arch/mips/bcm47xx/setup.c')
| -rw-r--r-- | arch/mips/bcm47xx/setup.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c index 2b63e7e7d3d3..c00585d915bc 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 | } |
| @@ -202,6 +211,10 @@ static void __init bcm47xx_register_bcma(void) | |||
| 202 | 211 | ||
| 203 | err = bcma_host_soc_register(&bcm47xx_bus.bcma); | 212 | err = bcma_host_soc_register(&bcm47xx_bus.bcma); |
| 204 | if (err) | 213 | if (err) |
| 214 | panic("Failed to register BCMA bus (err %d)", err); | ||
| 215 | |||
| 216 | err = bcma_host_soc_init(&bcm47xx_bus.bcma); | ||
| 217 | if (err) | ||
| 205 | panic("Failed to initialize BCMA bus (err %d)", err); | 218 | panic("Failed to initialize BCMA bus (err %d)", err); |
| 206 | 219 | ||
| 207 | bcm47xx_fill_bcma_boardinfo(&bcm47xx_bus.bcma.bus.boardinfo, NULL); | 220 | bcm47xx_fill_bcma_boardinfo(&bcm47xx_bus.bcma.bus.boardinfo, NULL); |
