diff options
Diffstat (limited to 'arch/mips/bcm63xx/prom.c')
-rw-r--r-- | arch/mips/bcm63xx/prom.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/arch/mips/bcm63xx/prom.c b/arch/mips/bcm63xx/prom.c index 8ac4e095e68e..e1f27d653f60 100644 --- a/arch/mips/bcm63xx/prom.c +++ b/arch/mips/bcm63xx/prom.c | |||
@@ -59,14 +59,12 @@ void __init prom_init(void) | |||
59 | /* do low level board init */ | 59 | /* do low level board init */ |
60 | board_prom_init(); | 60 | board_prom_init(); |
61 | 61 | ||
62 | if (IS_ENABLED(CONFIG_CPU_BMIPS4350) && IS_ENABLED(CONFIG_SMP)) { | 62 | /* set up SMP */ |
63 | /* set up SMP */ | 63 | if (!register_bmips_smp_ops()) { |
64 | register_smp_ops(&bmips_smp_ops); | ||
65 | |||
66 | /* | 64 | /* |
67 | * BCM6328 might not have its second CPU enabled, while BCM6358 | 65 | * BCM6328 might not have its second CPU enabled, while BCM3368 |
68 | * needs special handling for its shared TLB, so disable SMP | 66 | * and BCM6358 need special handling for their shared TLB, so |
69 | * for now. | 67 | * disable SMP for now. |
70 | */ | 68 | */ |
71 | if (BCMCPU_IS_6328()) { | 69 | if (BCMCPU_IS_6328()) { |
72 | reg = bcm_readl(BCM_6328_OTP_BASE + | 70 | reg = bcm_readl(BCM_6328_OTP_BASE + |
@@ -74,7 +72,7 @@ void __init prom_init(void) | |||
74 | 72 | ||
75 | if (reg & OTP_6328_REG3_TP1_DISABLED) | 73 | if (reg & OTP_6328_REG3_TP1_DISABLED) |
76 | bmips_smp_enabled = 0; | 74 | bmips_smp_enabled = 0; |
77 | } else if (BCMCPU_IS_6358()) { | 75 | } else if (BCMCPU_IS_3368() || BCMCPU_IS_6358()) { |
78 | bmips_smp_enabled = 0; | 76 | bmips_smp_enabled = 0; |
79 | } | 77 | } |
80 | 78 | ||