Skip to content

Commit d76ef05

Browse files
mindachen1987bjorn-helgaas
authored andcommitted
PCI: plda: Pass pci_host_bridge to plda_pcie_setup_iomems()
plda_pcie_setup_iomems() needs the bridge->windows list from struct pci_host_bridge and is currently used only by pcie-microchip-host.c. This driver uses pci_host_common_probe(), which sets a pci_host_bridge as the drvdata, so plda_pcie_setup_iomems() used platform_get_drvdata() to find the pci_host_bridge. But we also want to use plda_pcie_setup_iomems() in the new pcie-starfive.c driver, which does not use pci_host_common_probe() and will have struct starfive_jh7110_pcie as its drvdata, so pass the pci_host_bridge directly to plda_pcie_setup_iomems() so it doesn't need platform_get_drvdata() to find it. Link: https://lore.kernel.org/linux-pci/[email protected] Signed-off-by: Minda Chen <[email protected]> Signed-off-by: Krzysztof Wilczyński <[email protected]> [bhelgaas: commit log, reorder to where this is needed] Signed-off-by: Bjorn Helgaas <[email protected]> Reviewed-by: Conor Dooley <[email protected]>
1 parent 76c9113 commit d76ef05

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

drivers/pci/controller/plda/pcie-microchip-host.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,7 @@ static int mc_platform_init(struct pci_config_window *cfg)
616616
{
617617
struct device *dev = cfg->parent;
618618
struct platform_device *pdev = to_platform_device(dev);
619+
struct pci_host_bridge *bridge = platform_get_drvdata(pdev);
619620
void __iomem *bridge_base_addr =
620621
port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
621622
int ret;
@@ -629,7 +630,7 @@ static int mc_platform_init(struct pci_config_window *cfg)
629630
mc_pcie_enable_msi(port, cfg->win);
630631

631632
/* Configure non-config space outbound ranges */
632-
ret = plda_pcie_setup_iomems(pdev, &port->plda);
633+
ret = plda_pcie_setup_iomems(bridge, &port->plda);
633634
if (ret)
634635
return ret;
635636

drivers/pci/controller/plda/pcie-plda-host.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -533,11 +533,10 @@ void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
533533
}
534534
EXPORT_SYMBOL_GPL(plda_pcie_setup_window);
535535

536-
int plda_pcie_setup_iomems(struct platform_device *pdev,
536+
int plda_pcie_setup_iomems(struct pci_host_bridge *bridge,
537537
struct plda_pcie_rp *port)
538538
{
539539
void __iomem *bridge_base_addr = port->bridge_addr;
540-
struct pci_host_bridge *bridge = platform_get_drvdata(pdev);
541540
struct resource_entry *entry;
542541
u64 pci_addr;
543542
u32 index = 1;

drivers/pci/controller/plda/pcie-plda.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ int plda_init_interrupts(struct platform_device *pdev,
190190
void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
191191
phys_addr_t axi_addr, phys_addr_t pci_addr,
192192
size_t size);
193-
int plda_pcie_setup_iomems(struct platform_device *pdev,
193+
int plda_pcie_setup_iomems(struct pci_host_bridge *bridge,
194194
struct plda_pcie_rp *port);
195195
int plda_pcie_host_init(struct plda_pcie_rp *port, struct pci_ops *ops,
196196
const struct plda_event *plda_event);

0 commit comments

Comments
 (0)