[POWERPC] pseries: Constify & voidify get_property()
[linux-drm-fsl-dcu.git] / arch / powerpc / platforms / pseries / smp.c
index 3cf78a6cd27c32d55659cec05350ed28f8835a86..f39dad8b99e0dd287c88f45f86176d3ed896f275 100644 (file)
@@ -14,7 +14,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/sched.h>
@@ -146,9 +145,9 @@ static int pSeries_add_processor(struct device_node *np)
        unsigned int cpu;
        cpumask_t candidate_map, tmp = CPU_MASK_NONE;
        int err = -ENOSPC, len, nthreads, i;
-       u32 *intserv;
+       const u32 *intserv;
 
-       intserv = (u32 *)get_property(np, "ibm,ppc-interrupt-server#s", &len);
+       intserv = get_property(np, "ibm,ppc-interrupt-server#s", &len);
        if (!intserv)
                return 0;
 
@@ -206,9 +205,9 @@ static void pSeries_remove_processor(struct device_node *np)
 {
        unsigned int cpu;
        int len, nthreads, i;
-       u32 *intserv;
+       const u32 *intserv;
 
-       intserv = (u32 *)get_property(np, "ibm,ppc-interrupt-server#s", &len);
+       intserv = get_property(np, "ibm,ppc-interrupt-server#s", &len);
        if (!intserv)
                return;
 
@@ -417,27 +416,12 @@ static struct smp_ops_t pSeries_xics_smp_ops = {
 #endif
 
 /* This is called very early */
-void __init smp_init_pSeries(void)
+static void __init smp_init_pseries(void)
 {
        int i;
 
        DBG(" -> smp_init_pSeries()\n");
 
-       switch (ppc64_interrupt_controller) {
-#ifdef CONFIG_MPIC
-       case IC_OPEN_PIC:
-               smp_ops = &pSeries_mpic_smp_ops;
-               break;
-#endif
-#ifdef CONFIG_XICS
-       case IC_PPC_XIC:
-               smp_ops = &pSeries_xics_smp_ops;
-               break;
-#endif
-       default:
-               panic("Invalid interrupt controller");
-       }
-
 #ifdef CONFIG_HOTPLUG_CPU
        smp_ops->cpu_disable = pSeries_cpu_disable;
        smp_ops->cpu_die = pSeries_cpu_die;
@@ -472,3 +456,18 @@ void __init smp_init_pSeries(void)
        DBG(" <- smp_init_pSeries()\n");
 }
 
+#ifdef CONFIG_MPIC
+void __init smp_init_pseries_mpic(void)
+{
+       smp_ops = &pSeries_mpic_smp_ops;
+
+       smp_init_pseries();
+}
+#endif
+
+void __init smp_init_pseries_xics(void)
+{
+       smp_ops = &pSeries_xics_smp_ops;
+
+       smp_init_pseries();
+}