blob: 51087a9d91720153178dcdc876357101d2387cb8 [file] [log] [blame]
Andi Kleen92c05fc2006-03-23 14:35:12 -08001#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. */
7static __init int pci_access_init(void)
8{
9#ifdef CONFIG_PCI_MMCONFIG
10 pci_mmcfg_init();
11#endif
12 if (raw_pci_ops)
13 return 0;
14#ifdef CONFIG_PCI_BIOS
15 pci_pcbios_init();
16#endif
Daniel Ritz954c0b72006-08-22 07:29:08 -070017 /*
18 * don't check for raw_pci_ops here because we want pcbios as last
19 * fallback, yet it's needed to run first to set pcibios_last_bus
20 * in case legacy PCI probing is used. otherwise detecting peer busses
21 * fails.
22 */
Andi Kleen92c05fc2006-03-23 14:35:12 -080023#ifdef CONFIG_PCI_DIRECT
24 pci_direct_init();
25#endif
26 return 0;
27}
28arch_initcall(pci_access_init);