1 #include <linux/pci.h> 2 #include <linux/init.h> 3 #include "pci.h" 4 5 /* arch_initcall has too random ordering, so call the initializers 6 in the right sequence from here. */ 7 static __init int pci_access_init(void) 8 { 9 int type __maybe_unused = 0; 10 11 #ifdef CONFIG_PCI_DIRECT 12 type = pci_direct_probe(); 13 #endif 14 #ifdef CONFIG_PCI_MMCONFIG 15 pci_mmcfg_init(type); 16 #endif 17 if (raw_pci_ops) 18 return 0; 19 #ifdef CONFIG_PCI_BIOS 20 pci_pcbios_init(); 21 #endif 22 /* 23 * don't check for raw_pci_ops here because we want pcbios as last 24 * fallback, yet it's needed to run first to set pcibios_last_bus 25 * in case legacy PCI probing is used. otherwise detecting peer busses 26 * fails. 27 */ 28 #ifdef CONFIG_PCI_DIRECT 29 pci_direct_init(type); 30 #endif 31 if (!raw_pci_ops) 32 printk(KERN_ERR 33 "PCI: Fatal: No config space access function found\n"); 34 35 return 0; 36 } 37 arch_initcall(pci_access_init); 38