summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJohn Rose <johnrose@austin.ibm.com>2006-03-24 18:25:32 +0100
committerPaul Mackerras <paulus@samba.org>2006-03-27 05:48:38 +0200
commit16cc11daff0230bcd1ae7327c1c256c0aa02cad6 (patch)
treeb12424c57592741aa29c5876c872b06f166a3a78 /arch
parent[PATCH] powerpc: return to OF via trap, not exit (diff)
downloadlinux-16cc11daff0230bcd1ae7327c1c256c0aa02cad6.tar.xz
linux-16cc11daff0230bcd1ae7327c1c256c0aa02cad6.zip
[PATCH] powerpc: dynamic probe - use ppc_md.pci_probe_mode()
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/platforms/pseries/pci_dlpar.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/powerpc/platforms/pseries/pci_dlpar.c b/arch/powerpc/platforms/pseries/pci_dlpar.c
index 44abdeb9ca03..b3c2dcb1e4f0 100644
--- a/arch/powerpc/platforms/pseries/pci_dlpar.c
+++ b/arch/powerpc/platforms/pseries/pci_dlpar.c
@@ -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));