diff options
| author | 2015-01-07 16:58:30 +0530 | |
|---|---|---|
| committer | 2015-04-01 17:21:50 +0200 | |
| commit | c2736525465a5d6fe1456da8cc2bc701f9128682 (patch) | |
| tree | 702e2d39bc32f37a7d953243f876e19c89ffae13 /arch/mips/include | |
| parent | MIPS: Netlogic: Use MIPS topology.h (diff) | |
| download | wireguard-linux-c2736525465a5d6fe1456da8cc2bc701f9128682.tar.xz wireguard-linux-c2736525465a5d6fe1456da8cc2bc701f9128682.zip  | |
MIPS: Netlogic: Move cores per node out of multi-node.h
Use the current_cpu_data package field to get the node of the current CPU.
This allows us to remove xlp_cores_per_node and move nlm_threads_per_node()
and nlm_cores_per_node() to netlogic/common.h, which simplifies code.
Signed-off-by: Jayachandran C <jchandra@broadcom.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/8889/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/include')
| -rw-r--r-- | arch/mips/include/asm/mach-netlogic/multi-node.h | 9 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/common.h | 21 | 
2 files changed, 20 insertions, 10 deletions
diff --git a/arch/mips/include/asm/mach-netlogic/multi-node.h b/arch/mips/include/asm/mach-netlogic/multi-node.h index 9ed8dacdc37c..8bdf47e29145 100644 --- a/arch/mips/include/asm/mach-netlogic/multi-node.h +++ b/arch/mips/include/asm/mach-netlogic/multi-node.h @@ -48,15 +48,6 @@  #endif  #define NLM_THREADS_PER_CORE	4 -#ifdef CONFIG_CPU_XLR -#define nlm_cores_per_node()	8 -#else -extern unsigned int xlp_cores_per_node; -#define nlm_cores_per_node()	xlp_cores_per_node -#endif - -#define nlm_threads_per_node()	(nlm_cores_per_node() * NLM_THREADS_PER_CORE) -#define nlm_cpuid_to_node(c)	((c) / nlm_threads_per_node())  struct nlm_soc_info {  	unsigned long	coremask;	/* cores enabled on the soc */ 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_ */  | 
