Message ID | 1415322858-4318-1-git-send-email-dhdang@apm.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Thu, Nov 06, 2014 at 05:14:18PM -0800, Duc Dang wrote: > X-Gene PCIE driver currently depends on Liviu Dudau's patch > https://lkml.org/lkml/2014/9/30/166 in order to assign resource > to root bus and endpoint devices. The patch was dropped because > it will break x86, powerpc and probably others. So X-Gene PCIE > host functionality is currently broken. > > This patch adds function calls to create and scan root_bus as well > as assign unassigned bus resource (similar to Liviu Dudau's patch > above). This will help resolve the dependency to Liviu Dudau's patch > and make X-Gene PCIE work in latest open-source kernel. > > Signed-off-by: Duc Dang <dhdang@apm.com> > Signed-off-by: Tanmay Inamdar <tinamdar@apm.com> I applied this to for-linus for v3.18, because it fixes a driver we added in the v3.18 merge window. Thanks! > --- > drivers/pci/host/pci-xgene.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/host/pci-xgene.c b/drivers/pci/host/pci-xgene.c > index 9ecabfa..2988fe1 100644 > --- a/drivers/pci/host/pci-xgene.c > +++ b/drivers/pci/host/pci-xgene.c > @@ -631,10 +631,15 @@ static int xgene_pcie_probe_bridge(struct platform_device *pdev) > if (ret) > return ret; > > - bus = pci_scan_root_bus(&pdev->dev, 0, &xgene_pcie_ops, port, &res); > + bus = pci_create_root_bus(&pdev->dev, 0, > + &xgene_pcie_ops, port, &res); > if (!bus) > return -ENOMEM; > > + pci_scan_child_bus(bus); > + pci_assign_unassigned_bus_resources(bus); > + pci_bus_add_devices(bus); > + > platform_set_drvdata(pdev, port); > return 0; > } > -- > 1.8.2.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/pci/host/pci-xgene.c b/drivers/pci/host/pci-xgene.c index 9ecabfa..2988fe1 100644 --- a/drivers/pci/host/pci-xgene.c +++ b/drivers/pci/host/pci-xgene.c @@ -631,10 +631,15 @@ static int xgene_pcie_probe_bridge(struct platform_device *pdev) if (ret) return ret; - bus = pci_scan_root_bus(&pdev->dev, 0, &xgene_pcie_ops, port, &res); + bus = pci_create_root_bus(&pdev->dev, 0, + &xgene_pcie_ops, port, &res); if (!bus) return -ENOMEM; + pci_scan_child_bus(bus); + pci_assign_unassigned_bus_resources(bus); + pci_bus_add_devices(bus); + platform_set_drvdata(pdev, port); return 0; }