diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2007-10-11 05:16:36 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2007-10-11 05:16:36 -0400 |
commit | fb9aa6f1d4a1e11e66a680460b2c2b2b10b62f79 (patch) | |
tree | e0ad51f39b48a342244cef62099bd1a8a93927db /arch/x86/pci/init.c | |
parent | 4b60eb8380a0b588a03b6052d7ac93e1964c75b8 (diff) |
i386: move pci
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/pci/init.c')
-rw-r--r-- | arch/x86/pci/init.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/arch/x86/pci/init.c b/arch/x86/pci/init.c new file mode 100644 index 000000000000..3de9f9ba2da6 --- /dev/null +++ b/arch/x86/pci/init.c | |||
@@ -0,0 +1,37 @@ | |||
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 | int type __maybe_unused = 0; | ||
10 | |||
11 | #ifdef CONFIG_PCI_DIRECT | ||
12 | type = pci_direct_probe(); | ||
13 | #endif | ||
14 | #ifdef CONFIG_PCI_MMCONFIG | ||
15 | pci_mmcfg_init(type); | ||
16 | #endif | ||
17 | if (raw_pci_ops) | ||
18 | return 0; | ||
19 | #ifdef CONFIG_PCI_BIOS | ||
20 | pci_pcbios_init(); | ||
21 | #endif | ||
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 | */ | ||
28 | #ifdef CONFIG_PCI_DIRECT | ||
29 | pci_direct_init(type); | ||
30 | #endif | ||
31 | if (!raw_pci_ops) | ||
32 | printk(KERN_ERR | ||
33 | "PCI: Fatal: No config space access function found\n"); | ||
34 | |||
35 | return 0; | ||
36 | } | ||
37 | arch_initcall(pci_access_init); | ||