diff options
Diffstat (limited to 'arch/mips/netlogic/xlp/wakeup.c')
-rw-r--r-- | arch/mips/netlogic/xlp/wakeup.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/mips/netlogic/xlp/wakeup.c b/arch/mips/netlogic/xlp/wakeup.c index f4823ad6145f..e5f44d2605a8 100644 --- a/arch/mips/netlogic/xlp/wakeup.c +++ b/arch/mips/netlogic/xlp/wakeup.c | |||
@@ -135,7 +135,15 @@ static void xlp_enable_secondary_cores(const cpumask_t *wakeup_mask) | |||
135 | if (cpu_is_xlp9xx()) { | 135 | if (cpu_is_xlp9xx()) { |
136 | fusebase = nlm_get_fuse_regbase(n); | 136 | fusebase = nlm_get_fuse_regbase(n); |
137 | fusemask = nlm_read_reg(fusebase, FUSE_9XX_DEVCFG6); | 137 | fusemask = nlm_read_reg(fusebase, FUSE_9XX_DEVCFG6); |
138 | mask = 0xfffff; | 138 | switch (read_c0_prid() & PRID_IMP_MASK) { |
139 | case PRID_IMP_NETLOGIC_XLP5XX: | ||
140 | mask = 0xff; | ||
141 | break; | ||
142 | case PRID_IMP_NETLOGIC_XLP9XX: | ||
143 | default: | ||
144 | mask = 0xfffff; | ||
145 | break; | ||
146 | } | ||
139 | } else { | 147 | } else { |
140 | fusemask = nlm_read_sys_reg(nodep->sysbase, | 148 | fusemask = nlm_read_sys_reg(nodep->sysbase, |
141 | SYS_EFUSE_DEVICE_CFG_STATUS0); | 149 | SYS_EFUSE_DEVICE_CFG_STATUS0); |