aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/pci/pci.h
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2008-02-13 18:06:38 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2008-04-21 00:46:58 -0400
commit1ba6ab11d8fbd8d29afec4e39236e1255ae0339a (patch)
tree68970431b31c1fd21966f567113f87d24c6c7196 /arch/x86/pci/pci.h
parent3b57eff02c37c79e6254884d374a6a9233e11efc (diff)
PCI: remove initial bios sort of PCI devices on x86
We currently keep 2 lists of PCI devices in the system, one in the driver core, and one all on its own. This second list is sorted at boot time, in "BIOS" order, to try to remain compatible with older kernels (2.2 and earlier days). There was also a "nosort" option to turn this sorting off, to remain compatible with even older kernel versions, but that just ends up being what we have been doing from 2.5 days... Unfortunately, the second list of devices is not really ever used to determine the probing order of PCI devices or drivers[1]. That is done using the driver core list instead. This change happened back in the early 2.5 days. Relying on BIOS ording for the binding of drivers to specific device names is problematic for many reasons, and userspace tools like udev exist to properly name devices in a persistant manner if that is needed, no reliance on the BIOS is needed. Matt Domsch and others at Dell noticed this back in 2006, and added a boot option to sort the PCI device lists (both of them) in a breadth-first manner to help remain compatible with the 2.4 order, if needed for any reason. This option is not going away, as some systems rely on them. This patch removes the sorting of the internal PCI device list in "BIOS" mode, as it's not needed at all anymore, and hasn't for many years. I've also removed the PCI flags for this from some other arches that for some reason defined them, but never used them. This should not change the ordering of any drivers or device probing. [1] The old-style pci_get_device and pci_find_device() still used this sorting order, but there are very few drivers that use these functions, as they are deprecated for use in this manner. If for some reason, a driver rely on the order and uses these functions, the breadth-first boot option will resolve any problem. Cc: Matt Domsch <Matt_Domsch@dell.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'arch/x86/pci/pci.h')
-rw-r--r--arch/x86/pci/pci.h3
1 files changed, 0 insertions, 3 deletions
diff --git a/arch/x86/pci/pci.h b/arch/x86/pci/pci.h
index 3431518d921a..02b016a98423 100644
--- a/arch/x86/pci/pci.h
+++ b/arch/x86/pci/pci.h
@@ -19,8 +19,6 @@
19#define PCI_PROBE_MASK 0x000f 19#define PCI_PROBE_MASK 0x000f
20#define PCI_PROBE_NOEARLY 0x0010 20#define PCI_PROBE_NOEARLY 0x0010
21 21
22#define PCI_NO_SORT 0x0100
23#define PCI_BIOS_SORT 0x0200
24#define PCI_NO_CHECKS 0x0400 22#define PCI_NO_CHECKS 0x0400
25#define PCI_USE_PIRQ_MASK 0x0800 23#define PCI_USE_PIRQ_MASK 0x0800
26#define PCI_ASSIGN_ROMS 0x1000 24#define PCI_ASSIGN_ROMS 0x1000
@@ -101,7 +99,6 @@ extern int pci_direct_probe(void);
101extern void pci_direct_init(int type); 99extern void pci_direct_init(int type);
102extern void pci_pcbios_init(void); 100extern void pci_pcbios_init(void);
103extern void pci_mmcfg_init(int type); 101extern void pci_mmcfg_init(int type);
104extern void pcibios_sort(void);
105 102
106/* pci-mmconfig.c */ 103/* pci-mmconfig.c */
107 104