aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/pseries/smp.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/pseries/smp.c')
-rw-r--r--arch/powerpc/platforms/pseries/smp.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c
index a509c5292a67..fc72bfce7320 100644
--- a/arch/powerpc/platforms/pseries/smp.c
+++ b/arch/powerpc/platforms/pseries/smp.c
@@ -44,10 +44,11 @@
44#include <asm/mpic.h> 44#include <asm/mpic.h>
45#include <asm/vdso_datapage.h> 45#include <asm/vdso_datapage.h>
46#include <asm/cputhreads.h> 46#include <asm/cputhreads.h>
47#include <asm/mpic.h>
48#include <asm/xics.h>
47 49
48#include "plpar_wrappers.h" 50#include "plpar_wrappers.h"
49#include "pseries.h" 51#include "pseries.h"
50#include "xics.h"
51#include "offline_states.h" 52#include "offline_states.h"
52 53
53 54
@@ -136,7 +137,6 @@ out:
136 return 1; 137 return 1;
137} 138}
138 139
139#ifdef CONFIG_XICS
140static void __devinit smp_xics_setup_cpu(int cpu) 140static void __devinit smp_xics_setup_cpu(int cpu)
141{ 141{
142 if (cpu != boot_cpuid) 142 if (cpu != boot_cpuid)
@@ -151,7 +151,6 @@ static void __devinit smp_xics_setup_cpu(int cpu)
151 set_default_offline_state(cpu); 151 set_default_offline_state(cpu);
152#endif 152#endif
153} 153}
154#endif /* CONFIG_XICS */
155 154
156static void __devinit smp_pSeries_kick_cpu(int nr) 155static void __devinit smp_pSeries_kick_cpu(int nr)
157{ 156{
@@ -197,23 +196,21 @@ static int smp_pSeries_cpu_bootable(unsigned int nr)
197 196
198 return 1; 197 return 1;
199} 198}
200#ifdef CONFIG_MPIC 199
201static struct smp_ops_t pSeries_mpic_smp_ops = { 200static struct smp_ops_t pSeries_mpic_smp_ops = {
202 .message_pass = smp_mpic_message_pass, 201 .message_pass = smp_mpic_message_pass,
203 .probe = smp_mpic_probe, 202 .probe = smp_mpic_probe,
204 .kick_cpu = smp_pSeries_kick_cpu, 203 .kick_cpu = smp_pSeries_kick_cpu,
205 .setup_cpu = smp_mpic_setup_cpu, 204 .setup_cpu = smp_mpic_setup_cpu,
206}; 205};
207#endif 206
208#ifdef CONFIG_XICS
209static struct smp_ops_t pSeries_xics_smp_ops = { 207static struct smp_ops_t pSeries_xics_smp_ops = {
210 .message_pass = smp_xics_message_pass, 208 .message_pass = NULL, /* Filled at runtime by xics_smp_probe() */
211 .probe = smp_xics_probe, 209 .probe = xics_smp_probe,
212 .kick_cpu = smp_pSeries_kick_cpu, 210 .kick_cpu = smp_pSeries_kick_cpu,
213 .setup_cpu = smp_xics_setup_cpu, 211 .setup_cpu = smp_xics_setup_cpu,
214 .cpu_bootable = smp_pSeries_cpu_bootable, 212 .cpu_bootable = smp_pSeries_cpu_bootable,
215}; 213};
216#endif
217 214
218/* This is called very early */ 215/* This is called very early */
219static void __init smp_init_pseries(void) 216static void __init smp_init_pseries(void)
@@ -245,14 +242,12 @@ static void __init smp_init_pseries(void)
245 pr_debug(" <- smp_init_pSeries()\n"); 242 pr_debug(" <- smp_init_pSeries()\n");
246} 243}
247 244
248#ifdef CONFIG_MPIC
249void __init smp_init_pseries_mpic(void) 245void __init smp_init_pseries_mpic(void)
250{ 246{
251 smp_ops = &pSeries_mpic_smp_ops; 247 smp_ops = &pSeries_mpic_smp_ops;
252 248
253 smp_init_pseries(); 249 smp_init_pseries();
254} 250}
255#endif
256 251
257void __init smp_init_pseries_xics(void) 252void __init smp_init_pseries_xics(void)
258{ 253{