Re: [PATCH 09/24] PCI, powerpc: Register busn_res for root buses
From: Bjorn Helgaas <bhelgaas@google.com>
Date: 2012-02-08 15:59:43
Also in:
linux-arch, linux-pci, lkml
On Sat, Feb 4, 2012 at 10:57 PM, Yinghai Lu [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Signed-off-by: Yinghai Lu <yinghai@kernel.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <redacted> Cc: linuxppc-dev@lists.ozlabs.org --- =A0arch/powerpc/kernel/pci-common.c | =A0 =A07 ++++++- =A01 files changed, 6 insertions(+), 1 deletions(-)diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-c=
ommon.c
quoted hunk ↗ jump to hunk
index cce98d7..501f29b 100644--- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c@@ -1732,6 +1732,8 @@ void __devinit pcibios_scan_phb(struct pci_controll=
er *hose)
=A0 =A0 =A0 =A0bus->secondary =3D hose->first_busno; =A0 =A0 =A0 =A0hose->bus =3D bus; + =A0 =A0 =A0 pci_bus_insert_busn_res(bus, hose->first_busno, hose->last_=
busno);
quoted hunk ↗ jump to hunk
+ =A0 =A0 =A0 =A0/* Get probe mode and perform scan */ =A0 =A0 =A0 =A0mode =3D PCI_PROBE_NORMAL; =A0 =A0 =A0 =A0if (node && ppc_md.pci_probe_mode)@@ -1742,8 +1744,11 @@ void __devinit pcibios_scan_phb(struct pci_control=
ler *hose)
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0of_scan_bus(node, bus);
=A0 =A0 =A0 =A0}
- =A0 =A0 =A0 if (mode =3D=3D PCI_PROBE_NORMAL)
+ =A0 =A0 =A0 if (mode =3D=3D PCI_PROBE_NORMAL) {
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 pci_bus_update_busn_res_end(bus, 255);
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0hose->last_busno =3D bus->subordinate =3D =pci_scan_child_bus(bus);
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 pci_bus_update_busn_res_end(bus, bus->subor=
dinate);
+ =A0 =A0 =A0 }
The only architecture-specific thing here is discovering the range of bus numbers below a host bridge. The architecture should not have to mess around with pci_bus_update_busn_res_end() like this. It should be able to say "here's my bus number range" (and of course the PCI core can default to 0-255 if the arch doesn't supply a range) and the core should take care of the rest. Bjorn