diff options
Diffstat (limited to 'arch/mips/include/asm/netlogic/common.h')
| -rw-r--r-- | arch/mips/include/asm/netlogic/common.h | 21 | 
1 files changed, 20 insertions, 1 deletions
diff --git a/arch/mips/include/asm/netlogic/common.h b/arch/mips/include/asm/netlogic/common.h index c281f03eb312..2a4c128277e4 100644 --- a/arch/mips/include/asm/netlogic/common.h +++ b/arch/mips/include/asm/netlogic/common.h @@ -111,6 +111,25 @@ static inline int nlm_irq_to_xirq(int node, int irq)  	return node * NR_IRQS / NLM_NR_NODES + irq;  } -extern int nlm_cpu_ready[]; +#ifdef CONFIG_CPU_XLR +#define nlm_cores_per_node()	8 +#else +static inline int nlm_cores_per_node(void) +{ +	return ((read_c0_prid() & PRID_IMP_MASK) +				== PRID_IMP_NETLOGIC_XLP9XX) ? 32 : 8; +}  #endif +static inline int nlm_threads_per_node(void) +{ +	return nlm_cores_per_node() * NLM_THREADS_PER_CORE; +} + +static inline int nlm_hwtid_to_node(int hwtid) +{ +	return hwtid / nlm_threads_per_node(); +} + +extern int nlm_cpu_ready[]; +#endif /* __ASSEMBLY__ */  #endif /* _NETLOGIC_COMMON_H_ */  |