powerpc/pseries: Remove MPIC from pseries smp
authorRashmica Gupta <rashmicy@gmail.com>
Mon, 30 May 2016 06:18:12 +0000 (16:18 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 14 Jun 2016 03:58:26 +0000 (13:58 +1000)
MPIC was only used by Power3 which is now unsupported, so remove MPIC
code. XICS is now the only supported interrupt controller for
pSeries so do some cleanups too.

Signed-off-by: Rashmica Gupta <rashmicy@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/platforms/pseries/pseries.h
arch/powerpc/platforms/pseries/setup.c
arch/powerpc/platforms/pseries/smp.c

index 7aa83f0..edeaec7 100644 (file)
@@ -31,11 +31,9 @@ extern int pSeries_system_reset_exception(struct pt_regs *regs);
 extern int pSeries_machine_check_exception(struct pt_regs *regs);
 
 #ifdef CONFIG_SMP
-extern void smp_init_pseries_mpic(void);
-extern void smp_init_pseries_xics(void);
+extern void smp_init_pseries(void);
 #else
-static inline void smp_init_pseries_mpic(void) { };
-static inline void smp_init_pseries_xics(void) { };
+static inline void smp_init_pseries(void) { };
 #endif
 
 #ifdef CONFIG_KEXEC
index 39f21fb..4b94a1e 100644 (file)
@@ -437,7 +437,7 @@ static void __init pSeries_setup_arch(void)
 
        /* Discover PIC type and setup ppc_md accordingly */
        setup_kexec_cpu_down_xics();
-       smp_init_pseries_xics();
+       smp_init_pseries();
 
 
        /* openpic global configuration register (64-bit format). */
index 6932ea8..f6f83ae 100644 (file)
@@ -38,7 +38,6 @@
 #include <asm/cputable.h>
 #include <asm/firmware.h>
 #include <asm/rtas.h>
-#include <asm/mpic.h>
 #include <asm/vdso_datapage.h>
 #include <asm/cputhreads.h>
 #include <asm/xics.h>
@@ -140,7 +139,7 @@ out:
        return 1;
 }
 
-static void smp_xics_setup_cpu(int cpu)
+static void smp_setup_cpu(int cpu)
 {
        if (cpu != boot_cpuid)
                xics_setup_cpu();
@@ -207,28 +206,22 @@ static __init void pSeries_smp_probe(void)
        }
 }
 
-static struct smp_ops_t pSeries_mpic_smp_ops = {
-       .message_pass   = smp_mpic_message_pass,
-       .probe          = smp_mpic_probe,
-       .kick_cpu       = smp_pSeries_kick_cpu,
-       .setup_cpu      = smp_mpic_setup_cpu,
-};
-
-static struct smp_ops_t pSeries_xics_smp_ops = {
+static struct smp_ops_t pseries_smp_ops = {
        .message_pass   = NULL, /* Use smp_muxed_ipi_message_pass */
        .cause_ipi      = NULL, /* Filled at runtime by pSeries_smp_probe() */
        .probe          = pSeries_smp_probe,
        .kick_cpu       = smp_pSeries_kick_cpu,
-       .setup_cpu      = smp_xics_setup_cpu,
+       .setup_cpu      = smp_setup_cpu,
        .cpu_bootable   = smp_generic_cpu_bootable,
 };
 
 /* This is called very early */
-static void __init smp_init_pseries(void)
+void __init smp_init_pseries(void)
 {
        int i;
 
        pr_debug(" -> smp_init_pSeries()\n");
+       smp_ops = &pseries_smp_ops;
 
        alloc_bootmem_cpumask_var(&of_spin_mask);
 
@@ -258,17 +251,3 @@ static void __init smp_init_pseries(void)
 
        pr_debug(" <- smp_init_pSeries()\n");
 }
-
-void __init smp_init_pseries_mpic(void)
-{
-       smp_ops = &pSeries_mpic_smp_ops;
-
-       smp_init_pseries();
-}
-
-void __init smp_init_pseries_xics(void)
-{
-       smp_ops = &pSeries_xics_smp_ops;
-
-       smp_init_pseries();
-}