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. */ 7static __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} 37arch_initcall(pci_access_init); 38