]> err.no Git - linux-2.6/blobdiff - arch/powerpc/platforms/cell/setup.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/voyager-2.6
[linux-2.6] / arch / powerpc / platforms / cell / setup.c
index b39753f16d482db58899e8ace9eb8ff41c2a78f1..54b96183cb64466347cd6ca4a25090de56be6df1 100644 (file)
@@ -30,7 +30,6 @@
 #include <linux/console.h>
 #include <linux/mutex.h>
 #include <linux/memory_hotplug.h>
-#include <linux/notifier.h>
 
 #include <asm/mmu.h>
 #include <asm/processor.h>
@@ -55,7 +54,6 @@
 #include <asm/of_platform.h>
 
 #include "interrupt.h"
-#include "iommu.h"
 #include "cbe_regs.h"
 #include "pervasive.h"
 #include "ras.h"
@@ -73,7 +71,7 @@ static void cell_show_cpuinfo(struct seq_file *m)
 
        root = of_find_node_by_path("/");
        if (root)
-               model = get_property(root, "model", NULL);
+               model = of_get_property(root, "model", NULL);
        seq_printf(m, "machine\t\t: CHRP %s\n", model);
        of_node_put(root);
 }
@@ -83,38 +81,11 @@ static void cell_progress(char *s, unsigned short hex)
        printk("*** %04x : %s\n", hex, s ? s : "");
 }
 
-static int cell_of_bus_notify(struct notifier_block *nb, unsigned long action,
-                             void *data)
-{
-       struct device *dev = data;
-
-       if (action != BUS_NOTIFY_ADD_DEVICE)
-               return 0;
-
-       /* For now, we just use the PCI DMA ops for everything, though
-        * we'll need something better when we have a real iommu
-        * implementation.
-        */
-       dev->archdata.dma_ops = pci_dma_ops;
-
-       return 0;
-}
-
-static struct notifier_block cell_of_bus_notifier = {
-       .notifier_call = cell_of_bus_notify
-};
-
-
 static int __init cell_publish_devices(void)
 {
        if (!machine_is(cell))
                return 0;
 
-       /* Register callbacks on OF platform device addition/removal
-        * to handle linking them to the right DMA operations
-        */
-       bus_register_notifier(&of_platform_bus_type, &cell_of_bus_notifier);
-
        /* Publish OF platform devices for southbridge IOs */
        of_platform_bus_probe(NULL, NULL, NULL);
 
@@ -174,7 +145,8 @@ static void __init cell_init_irq(void)
 static void __init cell_setup_arch(void)
 {
 #ifdef CONFIG_SPU_BASE
-       spu_priv1_ops         = &spu_priv1_mmio_ops;
+       spu_priv1_ops = &spu_priv1_mmio_ops;
+       spu_management_ops = &spu_management_of_ops;
 #endif
 
        cbe_regs_init();
@@ -205,19 +177,6 @@ static void __init cell_setup_arch(void)
        mmio_nvram_init();
 }
 
-/*
- * Early initialization.  Relocation is on but do not reference unbolted pages
- */
-static void __init cell_init_early(void)
-{
-       DBG(" -> cell_init_early()\n");
-
-       cell_init_iommu();
-
-       DBG(" <- cell_init_early()\n");
-}
-
-
 static int __init cell_probe(void)
 {
        unsigned long root = of_get_flat_dt_root();
@@ -231,20 +190,10 @@ static int __init cell_probe(void)
        return 1;
 }
 
-/*
- * Cell has no legacy IO; anything calling this function has to
- * fail or bad things will happen
- */
-static int cell_check_legacy_ioport(unsigned int baseport)
-{
-       return -ENODEV;
-}
-
 define_machine(cell) {
        .name                   = "Cell",
        .probe                  = cell_probe,
        .setup_arch             = cell_setup_arch,
-       .init_early             = cell_init_early,
        .show_cpuinfo           = cell_show_cpuinfo,
        .restart                = rtas_restart,
        .power_off              = rtas_power_off,
@@ -253,9 +202,9 @@ define_machine(cell) {
        .get_rtc_time           = rtas_get_rtc_time,
        .set_rtc_time           = rtas_set_rtc_time,
        .calibrate_decr         = generic_calibrate_decr,
-       .check_legacy_ioport    = cell_check_legacy_ioport,
        .progress               = cell_progress,
        .init_IRQ               = cell_init_irq,
+       .pci_setup_phb          = rtas_setup_phb,
 #ifdef CONFIG_KEXEC
        .machine_kexec          = default_machine_kexec,
        .machine_kexec_prepare  = default_machine_kexec_prepare,