[PATCH] powerpc: dynamic probe - use ppc_md.pci_probe_mode()
[powerpc.git] / arch / powerpc / platforms / pseries / pci_dlpar.c
index 44abdeb..b3c2dcb 100644 (file)
@@ -152,20 +152,24 @@ pcibios_pci_config_bridge(struct pci_dev *dev)
 void
 pcibios_add_pci_devices(struct pci_bus * bus)
 {
-       int slotno, num;
+       int slotno, num, mode;
        struct pci_dev *dev;
        struct device_node *dn = pci_bus_to_OF_node(bus);
 
        eeh_add_device_tree_early(dn);
 
-       if (_machine == PLATFORM_PSERIES_LPAR) {
+       mode = PCI_PROBE_NORMAL;
+       if (ppc_md.pci_probe_mode)
+               mode = ppc_md.pci_probe_mode(bus);
+
+       if (mode == PCI_PROBE_DEVTREE) {
                /* use ofdt-based probe */
                of_scan_bus(dn, bus);
                if (!list_empty(&bus->devices)) {
                        pcibios_fixup_new_pci_devices(bus, 0);
                        pci_bus_add_devices(bus);
                }
-       } else {
+       } else if (mode == PCI_PROBE_NORMAL) {
                /* use legacy probe */
                slotno = PCI_SLOT(PCI_DN(dn->child)->devfn);
                num = pci_scan_slot(bus, PCI_DEVFN(slotno, 0));