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 #ifdef CONFIG_PCI_DIRECT 10 int type = 0; 11 12 type = pci_direct_probe(); 13 #endif 14 15 pci_mmcfg_early_init(); 16 17 #ifdef CONFIG_PCI_OLPC 18 pci_olpc_init(); 19 #endif 20 #ifdef CONFIG_PCI_BIOS 21 pci_pcbios_init(); 22 #endif 23 /* 24 * don't check for raw_pci_ops here because we want pcbios as last 25 * fallback, yet it's needed to run first to set pcibios_last_bus 26 * in case legacy PCI probing is used. otherwise detecting peer busses 27 * fails. 28 */ 29 #ifdef CONFIG_PCI_DIRECT 30 pci_direct_init(type); 31 #endif 32 if (!raw_pci_ops && !raw_pci_ext_ops) 33 printk(KERN_ERR 34 "PCI: Fatal: No config space access function found\n"); 35 36 dmi_check_pciprobe(); 37 38 dmi_check_skip_isa_align(); 39 40 return 0; 41 } 42 arch_initcall(pci_access_init); 43