Thread (31 messages) 31 messages, 6 authors, 2014-10-08

[PATCH v13 10/12] PCI: Assign unassigned bus resources in pci_scan_root_bus()

From: benh@kernel.crashing.org (Benjamin Herrenschmidt)
Date: 2014-09-29 21:03:58
Also in: linux-arch, linux-devicetree, linux-pci, lkml

On Mon, 2014-09-29 at 12:06 -0700, Yinghai Lu wrote:
On Mon, Sep 29, 2014 at 11:25 AM, Yinghai Lu [off-list ref] wrote:
quoted
On Mon, Sep 29, 2014 at 7:29 AM, Liviu Dudau [off-list ref] wrote:
quoted
If the firmware has not assigned all the bus resources and we are not just
probing the PCI buses, it makes sense to assign the unassigned resources
in pci_scan_root_bus().

Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: Arnd Bergmann <arnd@arndb.de>
CC: Jason Gunthorpe <redacted>
CC: Rob Herring <robh+dt@kernel.org>
---
 drivers/pci/probe.c | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 636d1c9..d2ebd49 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1951,6 +1951,9 @@ struct pci_bus *pci_scan_root_bus(struct device *parent, int bus,
        if (!found)
                pci_bus_update_busn_res_end(b, max);

+       if (!pci_has_flag(PCI_PROBE_ONLY))
+               pci_assign_unassigned_bus_resources(b);
+
        pci_bus_add_devices(b);
        return b;
 }
No, you can not do it that early.

On x86, we need to call
pcibios_resource_survey_bus at first.
on x86:
pcibios_init
pcibios_resource_survey()
pcibios_assign_resources() via fs_initcall
 
Right and on powerpc and others as well. We need to survey existing
resources. We also have a number of platform things that might need
to happen before we do the final re-assignment pass.

Ben.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help