[PATCH] powerpc: dynamic probe - use ppc_md.pci_probe_mode()
authorJohn Rose <johnrose@austin.ibm.com>
Fri, 24 Mar 2006 17:25:32 +0000 (11:25 -0600)
committerPaul Mackerras <paulus@samba.org>
Mon, 27 Mar 2006 03:48:38 +0000 (14:48 +1100)
Change the dynamic PCI probe function for pSeries to use
ppc_md.pci_probe_mode() when appropriate.

Signed-off-by: John Rose <johnrose@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/pseries/pci_dlpar.c

index 44abdeb9ca03151f6ed6fbe77b8682f0488ed14b..b3c2dcb1e4f04bf87be1d2421e6eef7ebb6cb8f7 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));