aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/netlogic/xlp
diff options
context:
space:
mode:
authorJayachandran C <jchandra@broadcom.com>2015-01-07 06:28:30 -0500
committerRalf Baechle <ralf@linux-mips.org>2015-04-01 11:21:50 -0400
commitc2736525465a5d6fe1456da8cc2bc701f9128682 (patch)
tree702e2d39bc32f37a7d953243f876e19c89ffae13 /arch/mips/netlogic/xlp
parent65fecc2725e5c8d5ef988d971b798b28b94e1865 (diff)
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/netlogic/xlp')
-rw-r--r--arch/mips/netlogic/xlp/setup.c5
-rw-r--r--arch/mips/netlogic/xlp/wakeup.c8
2 files changed, 4 insertions, 9 deletions
diff --git a/arch/mips/netlogic/xlp/setup.c b/arch/mips/netlogic/xlp/setup.c
index 4fdd9fd29d1d..27113a17f18d 100644
--- a/arch/mips/netlogic/xlp/setup.c
+++ b/arch/mips/netlogic/xlp/setup.c
@@ -51,7 +51,6 @@ uint64_t nlm_io_base;
51struct nlm_soc_info nlm_nodes[NLM_NR_NODES]; 51struct nlm_soc_info nlm_nodes[NLM_NR_NODES];
52cpumask_t nlm_cpumask = CPU_MASK_CPU0; 52cpumask_t nlm_cpumask = CPU_MASK_CPU0;
53unsigned int nlm_threads_per_core; 53unsigned int nlm_threads_per_core;
54unsigned int xlp_cores_per_node;
55 54
56static void nlm_linux_exit(void) 55static void nlm_linux_exit(void)
57{ 56{
@@ -163,10 +162,6 @@ void __init prom_init(void)
163 void *reset_vec; 162 void *reset_vec;
164 163
165 nlm_io_base = CKSEG1ADDR(XLP_DEFAULT_IO_BASE); 164 nlm_io_base = CKSEG1ADDR(XLP_DEFAULT_IO_BASE);
166 if (cpu_is_xlp9xx())
167 xlp_cores_per_node = 32;
168 else
169 xlp_cores_per_node = 8;
170 nlm_init_boot_cpu(); 165 nlm_init_boot_cpu();
171 xlp_mmu_init(); 166 xlp_mmu_init();
172 nlm_node_init(0); 167 nlm_node_init(0);
diff --git a/arch/mips/netlogic/xlp/wakeup.c b/arch/mips/netlogic/xlp/wakeup.c
index 26d82f79ef29..87d7846af2d0 100644
--- a/arch/mips/netlogic/xlp/wakeup.c
+++ b/arch/mips/netlogic/xlp/wakeup.c
@@ -111,7 +111,7 @@ static void xlp_enable_secondary_cores(const cpumask_t *wakeup_mask)
111 struct nlm_soc_info *nodep; 111 struct nlm_soc_info *nodep;
112 uint64_t syspcibase, fusebase; 112 uint64_t syspcibase, fusebase;
113 uint32_t syscoremask, mask, fusemask; 113 uint32_t syscoremask, mask, fusemask;
114 int core, n, cpu; 114 int core, n, cpu, ncores;
115 115
116 for (n = 0; n < NLM_NR_NODES; n++) { 116 for (n = 0; n < NLM_NR_NODES; n++) {
117 if (n != 0) { 117 if (n != 0) {
@@ -168,7 +168,8 @@ static void xlp_enable_secondary_cores(const cpumask_t *wakeup_mask)
168 syscoremask = (1 << hweight32(~fusemask & mask)) - 1; 168 syscoremask = (1 << hweight32(~fusemask & mask)) - 1;
169 169
170 pr_info("Node %d - SYS/FUSE coremask %x\n", n, syscoremask); 170 pr_info("Node %d - SYS/FUSE coremask %x\n", n, syscoremask);
171 for (core = 0; core < nlm_cores_per_node(); core++) { 171 ncores = nlm_cores_per_node();
172 for (core = 0; core < ncores; core++) {
172 /* we will be on node 0 core 0 */ 173 /* we will be on node 0 core 0 */
173 if (n == 0 && core == 0) 174 if (n == 0 && core == 0)
174 continue; 175 continue;
@@ -178,8 +179,7 @@ static void xlp_enable_secondary_cores(const cpumask_t *wakeup_mask)
178 continue; 179 continue;
179 180
180 /* see if at least the first hw thread is enabled */ 181 /* see if at least the first hw thread is enabled */
181 cpu = (n * nlm_cores_per_node() + core) 182 cpu = (n * ncores + core) * NLM_THREADS_PER_CORE;
182 * NLM_THREADS_PER_CORE;
183 if (!cpumask_test_cpu(cpu, wakeup_mask)) 183 if (!cpumask_test_cpu(cpu, wakeup_mask))
184 continue; 184 continue;
185 185