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