Merge branch 'intelfb-patches' of master.kernel.org:/pub/scm/linux/kernel/git/airlied...
[pandora-kernel.git] / arch / i386 / pci / init.c
index c7650a7..d028e1b 100644 (file)
@@ -6,18 +6,27 @@
    in the right sequence from here. */
 static __init int pci_access_init(void)
 {
+       int type = 0;
+
+#ifdef CONFIG_PCI_DIRECT
+       type = pci_direct_probe();
+#endif
 #ifdef CONFIG_PCI_MMCONFIG
-       pci_mmcfg_init();
+       pci_mmcfg_init(type);
 #endif
        if (raw_pci_ops)
                return 0;
 #ifdef CONFIG_PCI_BIOS
        pci_pcbios_init();
 #endif
-       if (raw_pci_ops)
-               return 0;
+       /*
+        * don't check for raw_pci_ops here because we want pcbios as last
+        * fallback, yet it's needed to run first to set pcibios_last_bus
+        * in case legacy PCI probing is used. otherwise detecting peer busses
+        * fails.
+        */
 #ifdef CONFIG_PCI_DIRECT
-       pci_direct_init();
+       pci_direct_init(type);
 #endif
        return 0;
 }