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