1 --- a/arch/mips/bcm47xx/time.c
2 +++ b/arch/mips/bcm47xx/time.c
4 #include <linux/ssb/ssb.h>
9 void __init plat_time_init(void)
17 * Use deterministic values for initial counter interrupt
18 @@ -43,15 +47,26 @@ void __init plat_time_init(void)
19 #ifdef CONFIG_BCM47XX_SSB
20 case BCM47XX_BUS_TYPE_SSB:
21 hz = ssb_cpu_clock(&bcm47xx_bus.ssb.mipscore) / 2;
22 + chip_id = bcm47xx_bus.ssb.chip_id;
25 #ifdef CONFIG_BCM47XX_BCMA
26 case BCM47XX_BUS_TYPE_BCMA:
27 hz = bcma_cpu_clock(&bcm47xx_bus.bcma.bus.drv_mips) / 2;
28 + chip_id = bcm47xx_bus.bcma.bus.chipinfo.id;
33 + if (chip_id == 0x5354) {
34 + len = nvram_getenv("clkfreq", buf, sizeof(buf));
35 + if (len >= 0 && !strncmp(buf, "200", 4))
37 + len = nvram_getenv("hardware_version", buf, sizeof(buf));
38 + if (len >= 0 && !strncmp(buf, "WL520G", 6))