diff options
| author | Manivannan Sadhasivam <[email protected]> | 2024-03-27 09:13:34 +0000 |
|---|---|---|
| committer | Krzysztof Wilczyński <[email protected]> | 2024-04-10 17:50:06 +0000 |
| commit | 570d7715eed8a29ac5bd96c7694f060a991e5a31 (patch) | |
| tree | df0aab3641df6f1af1eaddb7fd18fb050b35924b /drivers/pci/controller/dwc/pcie-tegra194.c | |
| parent | PCI: dwc: ep: Rename dw_pcie_ep_exit() to dw_pcie_ep_deinit() (diff) | |
| download | kernel-570d7715eed8a29ac5bd96c7694f060a991e5a31.tar.gz kernel-570d7715eed8a29ac5bd96c7694f060a991e5a31.zip | |
PCI: dwc: ep: Introduce dw_pcie_ep_cleanup() API for drivers supporting PERST#
For DWC glue drivers supporting PERST# (currently Qcom and Tegra194), some
of the DWC resources like eDMA should be cleaned up during the PERST#
assert time.
So let's introduce a dw_pcie_ep_cleanup() API that could be called by these
drivers to cleanup the DWC specific resources. Currently, it just removes
eDMA.
Closes: https://lore.kernel.org/linux-pci/ZWYmX8Y%2F7Q9WMxES@x1-carbon
Link: https://lore.kernel.org/linux-pci/[email protected]
Reported-by: Niklas Cassel <[email protected]>
Signed-off-by: Manivannan Sadhasivam <[email protected]>
Signed-off-by: Krzysztof Wilczyński <[email protected]>
Reviewed-by: Frank Li <[email protected]>
Reviewed-by: Niklas Cassel <[email protected]>
Diffstat (limited to 'drivers/pci/controller/dwc/pcie-tegra194.c')
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-tegra194.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c index 1f7b662cb8e1..26ea2f8313eb 100644 --- a/drivers/pci/controller/dwc/pcie-tegra194.c +++ b/drivers/pci/controller/dwc/pcie-tegra194.c @@ -1715,6 +1715,8 @@ static void pex_ep_event_pex_rst_assert(struct tegra_pcie_dw *pcie) if (ret) dev_err(pcie->dev, "Failed to go Detect state: %d\n", ret); + dw_pcie_ep_cleanup(&pcie->pci.ep); + reset_control_assert(pcie->core_rst); tegra_pcie_disable_phy(pcie); |
