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 | { | |
f6744c02 | 9 | int type __maybe_unused = 0; |
5e544d61 AK |
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); |
3ef0e1f8 AS |
16 | #endif |
17 | #ifdef CONFIG_PCI_OLPC | |
18 | pci_olpc_init(); | |
92c05fc1 AK |
19 | #endif |
20 | if (raw_pci_ops) | |
21 | return 0; | |
22 | #ifdef CONFIG_PCI_BIOS | |
23 | pci_pcbios_init(); | |
24 | #endif | |
954c0b7c DR |
25 | /* |
26 | * don't check for raw_pci_ops here because we want pcbios as last | |
27 | * fallback, yet it's needed to run first to set pcibios_last_bus | |
28 | * in case legacy PCI probing is used. otherwise detecting peer busses | |
29 | * fails. | |
30 | */ | |
92c05fc1 | 31 | #ifdef CONFIG_PCI_DIRECT |
5e544d61 | 32 | pci_direct_init(type); |
92c05fc1 | 33 | #endif |
f015c6c4 AK |
34 | if (!raw_pci_ops) |
35 | printk(KERN_ERR | |
36 | "PCI: Fatal: No config space access function found\n"); | |
37 | ||
92c05fc1 AK |
38 | return 0; |
39 | } | |
40 | arch_initcall(pci_access_init); |