PCI: generic: Remove dependency on ARM-specific struct hw_pci
authorJayachandran C <jchandra@broadcom.com>
Tue, 4 Aug 2015 20:53:38 +0000 (02:23 +0530)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 20 Aug 2015 17:02:49 +0000 (12:02 -0500)
commit499733e0cc1a00523c5056a690f65dea7b9da140
treeca4901def771e2e5af5009eef67b7f091db67aa4
parent808b27a5ae05e8828b9f6262af5b9dfae5f661d0
PCI: generic: Remove dependency on ARM-specific struct hw_pci

The generic OF-based host controller driver uses pci_common_init_dev(),
which is ARM-specific and requires the ARM struct hw_pci.  The part of
pci_common_init_dev() that is needed is limited and can be done here
without using hw_pci.

Note that the ARM pcibios functions expect the PCI sysdata to be a pointer
to a struct pci_sys_data.  Add a struct pci_sys_data as the first element
in struct gen_pci so that when we use a gen_pci pointer as sysdata, it is
also a pointer to a struct pci_sys_data.

Create and scan the root bus directly without using the ARM
pci_common_init_dev() interface.

[bhelgaas: changelog, move pcie_bus_configure_settings() before
pci_bus_add_devices(), combine !PCI_PROBE_ONLY blocks]
Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
Tested-by: Pavel Fedin <p.fedin@samsung.com>
Signed-off-by: Jayachandran C <jchandra@broadcom.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/host/pci-host-generic.c