Commit | Line | Data |
---|---|---|
92c05fc1 AK |
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 | { | |
5e544d61 AK |
9 | int type = 0; |
10 | ||
11 | #ifdef CONFIG_PCI_DIRECT | |
12 | type = pci_direct_probe(); | |
13 | #endif | |
92c05fc1 | 14 | #ifdef CONFIG_PCI_MMCONFIG |
5e544d61 | 15 | pci_mmcfg_init(type); |
92c05fc1 AK |
16 | #endif |
17 | if (raw_pci_ops) | |
18 | return 0; | |
19 | #ifdef CONFIG_PCI_BIOS | |
20 | pci_pcbios_init(); | |
21 | #endif | |
954c0b7c DR |
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 | */ | |
92c05fc1 | 28 | #ifdef CONFIG_PCI_DIRECT |
5e544d61 | 29 | pci_direct_init(type); |
92c05fc1 AK |
30 | #endif |
31 | return 0; | |
32 | } | |
33 | arch_initcall(pci_access_init); |