]> err.no Git - linux-2.6/blobdiff - arch/powerpc/kernel/rtas_pci.c
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
[linux-2.6] / arch / powerpc / kernel / rtas_pci.c
index 2576e12d7255184372921db38e72ddf61622f952..f2286822be0948c5dad8e0df0cd9b80aa4851650 100644 (file)
@@ -38,6 +38,7 @@
 #include <asm/rtas.h>
 #include <asm/mpic.h>
 #include <asm/ppc-pci.h>
+#include <asm/eeh.h>
 
 /* RTAS tokens */
 static int read_pci_config;
@@ -59,7 +60,7 @@ static int of_device_available(struct device_node * dn)
 {
         const char *status;
 
-        status = get_property(dn, "status", NULL);
+        status = of_get_property(dn, "status", NULL);
 
         if (!status)
                 return 1;
@@ -176,7 +177,7 @@ struct pci_ops rtas_pci_ops = {
 
 int is_python(struct device_node *dev)
 {
-       const char *model = get_property(dev, "model", NULL);
+       const char *model = of_get_property(dev, "model", NULL);
 
        if (model && strstr(model, "Python"))
                return 1;
@@ -246,7 +247,7 @@ static int phb_set_bus_ranges(struct device_node *dev,
        const int *bus_range;
        unsigned int len;
 
-       bus_range = get_property(dev, "bus-range", &len);
+       bus_range = of_get_property(dev, "bus-range", &len);
        if (bus_range == NULL || len < 2 * sizeof(int)) {
                return 1;
        }
@@ -257,8 +258,10 @@ static int phb_set_bus_ranges(struct device_node *dev,
        return 0;
 }
 
-int __devinit setup_phb(struct device_node *dev, struct pci_controller *phb)
+int __devinit rtas_setup_phb(struct pci_controller *phb)
 {
+       struct device_node *dev = phb->arch_data;
+
        if (is_python(dev))
                python_countermeasures(dev);
 
@@ -271,7 +274,7 @@ int __devinit setup_phb(struct device_node *dev, struct pci_controller *phb)
        return 0;
 }
 
-unsigned long __init find_and_init_phbs(void)
+void __init find_and_init_phbs(void)
 {
        struct device_node *node;
        struct pci_controller *phb;
@@ -290,7 +293,7 @@ unsigned long __init find_and_init_phbs(void)
                phb = pcibios_alloc_controller(node);
                if (!phb)
                        continue;
-               setup_phb(node, phb);
+               rtas_setup_phb(phb);
                pci_process_bridge_OF_ranges(phb, node, 0);
                pci_setup_phb_io(phb, index == 0);
                index++;
@@ -306,18 +309,16 @@ unsigned long __init find_and_init_phbs(void)
        if (of_chosen) {
                const int *prop;
 
-               prop = get_property(of_chosen,
+               prop = of_get_property(of_chosen,
                                "linux,pci-probe-only", NULL);
                if (prop)
                        pci_probe_only = *prop;
 
-               prop = get_property(of_chosen,
+               prop = of_get_property(of_chosen,
                                "linux,pci-assign-all-buses", NULL);
                if (prop)
                        pci_assign_all_buses = *prop;
        }
-
-       return 0;
 }
 
 /* RPA-specific bits for removing PHBs */
@@ -362,7 +363,6 @@ int pcibios_remove_root_bus(struct pci_controller *phb)
                }
        }
 
-       list_del(&phb->list_node);
        pcibios_free_controller(phb);
 
        return 0;