diff options
Diffstat (limited to 'arch/mips/include/asm/netlogic/mips-extns.h')
-rw-r--r-- | arch/mips/include/asm/netlogic/mips-extns.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/mips/include/asm/netlogic/mips-extns.h b/arch/mips/include/asm/netlogic/mips-extns.h index 06f1f75bfa9b..788baf399e69 100644 --- a/arch/mips/include/asm/netlogic/mips-extns.h +++ b/arch/mips/include/asm/netlogic/mips-extns.h | |||
@@ -157,7 +157,13 @@ static inline int nlm_nodeid(void) | |||
157 | 157 | ||
158 | static inline unsigned int nlm_core_id(void) | 158 | static inline unsigned int nlm_core_id(void) |
159 | { | 159 | { |
160 | return (read_c0_ebase() & 0x1c) >> 2; | 160 | uint32_t prid = read_c0_prid() & PRID_IMP_MASK; |
161 | |||
162 | if ((prid == PRID_IMP_NETLOGIC_XLP9XX) || | ||
163 | (prid == PRID_IMP_NETLOGIC_XLP5XX)) | ||
164 | return (read_c0_ebase() & 0x7c) >> 2; | ||
165 | else | ||
166 | return (read_c0_ebase() & 0x1c) >> 2; | ||
161 | } | 167 | } |
162 | 168 | ||
163 | static inline unsigned int nlm_thread_id(void) | 169 | static inline unsigned int nlm_thread_id(void) |