aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/pci/ecam.h
diff options
context:
space:
mode:
authorJayachandran C <jchandra@broadcom.com>2016-05-11 17:34:46 -0500
committerBjorn Helgaas <bhelgaas@google.com>2016-05-12 07:07:42 -0500
commit1958e7173df14ff50d75ed2fbd24b349d25caf80 (patch)
tree2b830d1f76afce4257a7a698b4145a94d7b1fb87 /drivers/pci/ecam.h
parentPCI: Provide common functions for ECAM mapping (diff)
downloadwireguard-linux-1958e7173df14ff50d75ed2fbd24b349d25caf80.tar.xz
wireguard-linux-1958e7173df14ff50d75ed2fbd24b349d25caf80.zip
PCI: generic, thunder: Use generic ECAM API
Use functions provided by drivers/pci/ecam.h for mapping the config space in drivers/pci/host/pci-host-common.c, and update its users to use 'struct pci_config_window' and 'struct pci_ecam_ops'. The changes are mostly to use 'struct pci_config_window' in place of 'struct gen_pci'. Some of the fields of gen_pci were only used temporarily and can be eliminated by using local variables or function arguments, these are not carried over to struct pci_config_window. pci-thunder-ecam.c and pci-thunder-pem.c are the only users of the pci_host_common_probe function and the gen_pci structure; these have been updated to use the new API as well. The patch does not introduce any functional changes other than a very minor one: with the new code, on 64-bit platforms, we do just a single ioremap for the whole config space. Signed-off-by: Jayachandran C <jchandra@broadcom.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/pci/ecam.h')
-rw-r--r--drivers/pci/ecam.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/pci/ecam.h b/drivers/pci/ecam.h
index 912421909745..9878bebd45bb 100644
--- a/drivers/pci/ecam.h
+++ b/drivers/pci/ecam.h
@@ -59,4 +59,9 @@ void __iomem *pci_ecam_map_bus(struct pci_bus *bus, unsigned int devfn,
/* default ECAM ops */
extern struct pci_ecam_ops pci_generic_ecam_ops;
+#ifdef CONFIG_PCI_HOST_GENERIC
+/* for DT-based PCI controllers that support ECAM */
+int pci_host_common_probe(struct platform_device *pdev,
+ struct pci_ecam_ops *ops);
+#endif
#endif