Merge commit 'origin/master'
[pandora-kernel.git] / arch / powerpc / platforms / 85xx / mpc85xx_ds.c
index 2865d01..00c5358 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/delay.h>
 #include <linux/seq_file.h>
 #include <linux/interrupt.h>
+#include <linux/of_platform.h>
 
 #include <asm/system.h>
 #include <asm/time.h>
@@ -57,14 +58,13 @@ void __init mpc85xx_ds_pic_init(void)
 {
        struct mpic *mpic;
        struct resource r;
-       struct device_node *np = NULL;
+       struct device_node *np;
 #ifdef CONFIG_PPC_I8259
        struct device_node *cascade_node = NULL;
        int cascade_irq;
 #endif
 
-       np = of_find_node_by_type(np, "open-pic");
-
+       np = of_find_node_by_type(NULL, "open-pic");
        if (np == NULL) {
                printk(KERN_ERR "Could not find open-pic node\n");
                return;
@@ -77,9 +77,11 @@ void __init mpc85xx_ds_pic_init(void)
        }
 
        mpic = mpic_alloc(np, r.start,
-                         MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
+                         MPIC_PRIMARY | MPIC_WANTS_RESET |
+                         MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS,
                        0, 256, " OpenPIC  ");
        BUG_ON(mpic == NULL);
+       of_node_put(np);
 
        mpic_init(mpic);
 
@@ -113,7 +115,6 @@ void __init mpc85xx_ds_pic_init(void)
 
 #ifdef CONFIG_PCI
 static int primary_phb_addr;
-extern int uses_fsl_uli_m1575;
 extern int uli_exclude_device(struct pci_controller *hose,
                                u_char bus, u_char devfn);
 
@@ -159,7 +160,6 @@ static void __init mpc85xx_ds_setup_arch(void)
                }
        }
 
-       uses_fsl_uli_m1575 = 1;
        ppc_md.pci_exclude_device = mpc85xx_exclude_device;
 #endif
 
@@ -183,6 +183,19 @@ static int __init mpc8544_ds_probe(void)
        }
 }
 
+static struct of_device_id __initdata mpc85xxds_ids[] = {
+       { .type = "soc", },
+       { .compatible = "soc", },
+       {},
+};
+
+static int __init mpc85xxds_publish_devices(void)
+{
+       return of_platform_bus_probe(NULL, mpc85xxds_ids, NULL);
+}
+machine_device_initcall(mpc8544_ds, mpc85xxds_publish_devices);
+machine_device_initcall(mpc8572_ds, mpc85xxds_publish_devices);
+
 /*
  * Called very early, device-tree isn't unflattened
  */