diff options
Diffstat (limited to 'arch/x86/pci/init.c')
| -rw-r--r-- | arch/x86/pci/init.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/arch/x86/pci/init.c b/arch/x86/pci/init.c index b821f4462d9..adb62aaa7ec 100644 --- a/arch/x86/pci/init.c +++ b/arch/x86/pci/init.c @@ -1,10 +1,11 @@ #include <linux/pci.h> #include <linux/init.h> -#include "pci.h" +#include <asm/pci_x86.h> +#include <asm/x86_init.h> /* arch_initcall has too random ordering, so call the initializers in the right sequence from here. */ -static __init int pci_access_init(void) +static __init int pci_arch_init(void) { #ifdef CONFIG_PCI_DIRECT int type = 0; @@ -12,12 +13,12 @@ static __init int pci_access_init(void) type = pci_direct_probe(); #endif - pci_mmcfg_early_init(); + if (!(pci_probe & PCI_PROBE_NOEARLY)) + pci_mmcfg_early_init(); + + if (x86_init.pci.arch_init && !x86_init.pci.arch_init()) + return 0; -#ifdef CONFIG_PCI_OLPC - if (!pci_olpc_init()) - return 0; /* skip additional checks if it's an XO */ -#endif #ifdef CONFIG_PCI_BIOS pci_pcbios_init(); #endif @@ -40,4 +41,4 @@ static __init int pci_access_init(void) return 0; } -arch_initcall(pci_access_init); +arch_initcall(pci_arch_init); |
