Commit 3a4b05c9 authored by Siddharth Vadapalli's avatar Siddharth Vadapalli Committed by Bjorn Helgaas
Browse files

PCI: cadence-ep: Introduce cdns_pcie_ep_disable() helper for cleanup



Introduce the helper function cdns_pcie_ep_disable() which will undo the
configuration performed by cdns_pcie_ep_setup(). Also, export it for use
by the existing callers of cdns_pcie_ep_setup(), thereby allowing them
to cleanup on their exit path.

Signed-off-by: default avatarSiddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: default avatarManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Reviewed-by: default avatarManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://patch.msgid.link/20250417124408.2752248-4-s-vadapalli@ti.com
parent 47f25da6
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -646,6 +646,17 @@ static const struct pci_epc_ops cdns_pcie_epc_ops = {
	.get_features	= cdns_pcie_ep_get_features,
};

void cdns_pcie_ep_disable(struct cdns_pcie_ep *ep)
{
	struct device *dev = ep->pcie.dev;
	struct pci_epc *epc = to_pci_epc(dev);

	pci_epc_deinit_notify(epc);
	pci_epc_mem_free_addr(epc, ep->irq_phys_addr, ep->irq_cpu_addr,
			      SZ_128K);
	pci_epc_mem_exit(epc);
}
EXPORT_SYMBOL_GPL(cdns_pcie_ep_disable);

int cdns_pcie_ep_setup(struct cdns_pcie_ep *ep)
{
+5 −0
Original line number Diff line number Diff line
@@ -544,11 +544,16 @@ static inline void __iomem *cdns_pci_map_bus(struct pci_bus *bus, unsigned int d

#if IS_ENABLED(CONFIG_PCIE_CADENCE_EP)
int cdns_pcie_ep_setup(struct cdns_pcie_ep *ep);
void cdns_pcie_ep_disable(struct cdns_pcie_ep *ep);
#else
static inline int cdns_pcie_ep_setup(struct cdns_pcie_ep *ep)
{
	return 0;
}

static inline void cdns_pcie_ep_disable(struct cdns_pcie_ep *ep)
{
}
#endif

void cdns_pcie_detect_quiet_min_delay_set(struct cdns_pcie *pcie);