PCI: Call pci_read_bridge_bases() from core instead of arch code

When we scan a PCI bus, we read PCI-PCI bridge window registers with
pci_read_bridge_bases() so we can validate the resource hierarchy.  Most
architectures call pci_read_bridge_bases() from pcibios_fixup_bus(), but
PCI-PCI bridges are not arch-specific, so this doesn't need to be in
arch-specific code.

Call pci_read_bridge_bases() directly from the PCI core instead of from
arch code.

For alpha and mips, we now call pci_read_bridge_bases() always; previously
we only called it if PCI_PROBE_ONLY was set.

[bhelgaas: changelog]
Signed-off-by: Lorenzo Pieralisi <[email protected]>
Signed-off-by: Bjorn Helgaas <[email protected]>
CC: Ralf Baechle <[email protected]>
CC: James E.J. Bottomley <[email protected]>
CC: Michael Ellerman <[email protected]>
CC: Bjorn Helgaas <[email protected]>
CC: Richard Henderson <[email protected]>
CC: Benjamin Herrenschmidt <[email protected]>
CC: David Howells <[email protected]>
CC: Russell King <[email protected]>
CC: Tony Luck <[email protected]>
CC: David S. Miller <[email protected]>
CC: Ingo Molnar <[email protected]>
CC: Guenter Roeck <[email protected]>
CC: Michal Simek <[email protected]>
CC: Chris Zankel <[email protected]>
This commit is contained in:
Lorenzo Pieralisi 2015-07-09 11:59:16 +01:00 • committed by Bjorn Helgaas
commit dff22d2054
12 changed files with 11 additions and 42 deletions

View file

@ -533,10 +533,9 @@ void pcibios_fixup_bus(struct pci_bus *b)
{
struct pci_dev *dev;
if (b->self) {
pci_read_bridge_bases(b);
if (b->self)
pcibios_fixup_bridge_resources(b->self);
}
list_for_each_entry(dev, &b->devices, bus_list)
pcibios_fixup_device_resources(dev);
platform_pci_fixup_bus(b);