On Wed, Aug 05, 2015 at 12:49:56AM +0100, Bjorn Helgaas wrote: > On Wed, Aug 05, 2015 at 02:23:38AM +0530, Jayachandran C wrote: > > The current code in pci-host-generic.c uses pci_common_init_dev() > > from arm architecture to do some part of the PCI setup, and this > > prevents it from being used with arm64 architecture. > > > > The part of pci_common_init_dev() that is really needed by > > pci-host-generic.c is very limited and can be done in the same > > file without using hw_pci API of ARM. The ARM platform requires > > a pci_sys_data as sysdata for the PCI bus, this can be handled by > > setting up gen_pci to have a pci_sys_data variable as the first > > element. > > > > Signed-off-by: Jayachandran C <jchandra@xxxxxxxxxxxx> > > Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> > > Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> > > Tested-by: Pavel Fedin <p.fedin@xxxxxxxxxxx> > > I applied all three of these to my pci/enumeration branch for v4.3. > > I made a few changes, the most important being to call > pcie_bus_configure_settings() before pci_bus_add_devices(), because drivers > may claim devices in pci_bus_add_devices(), and the PCI core shouldn't > touch devices after drivers claim them. > > I dropped the acks and tested-by because of that change, but I'll happily > add them back if Lorenzo and Pavel confirm. The patches are here if you > want to review/test them: > > https://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/log/?h=pci/enumeration > > I'm sure the other patches on that branch will need some tweaks, too, so I > don't have any problem with updating these. Excellent, thanks Bjorn! Marc and I will take these for a spin in conjunction with tip/irq/core and the arm64 queue. That said, I just tried to build this and it fails to compile the x-gene PCI host driver. Fixup below. Will --->8 diff --git a/drivers/pci/host/pci-xgene.c b/drivers/pci/host/pci-xgene.c index 514f41b86c49..57ac0c7108a8 100644 --- a/drivers/pci/host/pci-xgene.c +++ b/drivers/pci/host/pci-xgene.c @@ -506,7 +506,7 @@ static int xgene_pcie_msi_enable(struct xgene_pcie_port *port) { struct device_node *msi_node; - msi_node = of_parse_phandle(port->dev.of_node, "msi-parent", 0); + msi_node = of_parse_phandle(port->dev->of_node, "msi-parent", 0); if (!msi_node) return -ENODEV; -- 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