On Thu, Mar 27, 2014 at 05:46:38PM -0500, Rob Herring wrote: > From: Rob Herring <robh@xxxxxxxxxx> > > This converts the Versatile PCI host code to a platform driver using > of_create_pci_host_bridge for parsing DT and setup. > > I think more of this setup could be done by the core code. There are > accesses to the host's config space (accesses using local_pci_cfg_base) > which seem like they could be done by the core code or using standard > config space accessors. The problem is bridge->bus->self is needed, but > it does not get setup. I'm not exactly sure how that should work. > > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> > Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > ... > +static int versatile_pci_probe(struct platform_device *pdev) > +{ > + struct resource *res; > + int ret, i, mem = 1, myslot = -1; > + unsigned int lastbus; > + u32 val; > + struct pci_host_bridge *bridge; > + void __iomem *local_pci_cfg_base; > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + if (!res) > + return -ENODEV; > + versatile_pci_base = devm_ioremap_resource(&pdev->dev, res); > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 1); > + if (!res) > + return -ENODEV; > + versatile_cfg_base[0] = devm_ioremap_resource(&pdev->dev, res); > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 2); > + if (!res) > + return -ENODEV; > + versatile_cfg_base[1] = devm_ioremap_resource(&pdev->dev, res); > + > + bridge = of_create_pci_host_bridge(&pdev->dev, &pci_versatile_ops, &sys); Are we still relying on the PCI core to default to a bus number range of 00-ff? Can we not do that? Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html