Rename gen_pci_init() API as pci_host_common_init() and export it to create ECAM and initialized ECAM OPs from PCIe driver which don't have way to populate driver_data as just ECAM ops. Signed-off-by: Mayank Rana <mayank.rana@xxxxxxxxxxxxxxxx> --- drivers/pci/controller/pci-host-common.c | 5 +++-- include/linux/pci-ecam.h | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/pci-host-common.c b/drivers/pci/controller/pci-host-common.c index cf5f59a745b3..6e68c66382fa 100644 --- a/drivers/pci/controller/pci-host-common.c +++ b/drivers/pci/controller/pci-host-common.c @@ -20,7 +20,7 @@ static void gen_pci_unmap_cfg(void *ptr) pci_ecam_free((struct pci_config_window *)ptr); } -static struct pci_config_window *gen_pci_init(struct device *dev, +struct pci_config_window *pci_host_common_init(struct device *dev, struct pci_host_bridge *bridge, const struct pci_ecam_ops *ops) { int err; @@ -48,6 +48,7 @@ static struct pci_config_window *gen_pci_init(struct device *dev, return cfg; } +EXPORT_SYMBOL_GPL(pci_host_common_init); int pci_host_common_probe(struct platform_device *pdev) { @@ -69,7 +70,7 @@ int pci_host_common_probe(struct platform_device *pdev) of_pci_check_probe_only(); /* Parse and map our Configuration Space windows */ - cfg = gen_pci_init(dev, bridge, ops); + cfg = pci_host_common_init(dev, bridge, ops); if (IS_ERR(cfg)) return PTR_ERR(cfg); diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h index 3a4860bd2758..ad6a6170ff26 100644 --- a/include/linux/pci-ecam.h +++ b/include/linux/pci-ecam.h @@ -94,5 +94,7 @@ extern const struct pci_ecam_ops loongson_pci_ecam_ops; /* Loongson PCIe */ /* for DT-based PCI controllers that support ECAM */ int pci_host_common_probe(struct platform_device *pdev); void pci_host_common_remove(struct platform_device *pdev); +struct pci_config_window *pci_host_common_init(struct device *dev, + struct pci_host_bridge *bridge, const struct pci_ecam_ops *ops); #endif #endif -- 2.25.1