]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI: tegra194: Free up Endpoint resources during remove()
authorVidya Sagar <vidyas@nvidia.com>
Tue, 24 Mar 2026 19:07:51 +0000 (00:37 +0530)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 8 Apr 2026 22:00:23 +0000 (17:00 -0500)
Free up the resources during remove() that were acquired by the DesignWare
driver for the Endpoint mode during probe().

Fixes: bb617cbd8151 ("PCI: tegra194: Clean up the exit path for Endpoint mode")
Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Vidya Sagar <vidyas@nvidia.com>
Link: https://patch.msgid.link/20260324190755.1094879-11-mmaddireddy@nvidia.com
drivers/pci/controller/dwc/pcie-tegra194.c

index 06742796c332f300baf3e7dc9574cee03e13d6ef..3527a4e82bac8368df3bbfcab486fc6751556317 100644 (file)
@@ -2251,6 +2251,7 @@ fail:
 static void tegra_pcie_dw_remove(struct platform_device *pdev)
 {
        struct tegra_pcie_dw *pcie = platform_get_drvdata(pdev);
+       struct dw_pcie_ep *ep = &pcie->pci.ep;
 
        if (pcie->of_data->mode == DW_PCIE_RC_TYPE) {
                if (!pcie->link_state)
@@ -2262,6 +2263,7 @@ static void tegra_pcie_dw_remove(struct platform_device *pdev)
        } else {
                disable_irq(pcie->pex_rst_irq);
                pex_ep_event_pex_rst_assert(pcie);
+               dw_pcie_ep_deinit(ep);
        }
 
        pm_runtime_disable(pcie->dev);