summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2024-11-25 20:41:00 +0100
committerBjorn Helgaas <bhelgaas@google.com>2024-11-25 20:41:00 +0100
commitc60603ca1d2c8da9a7a6cdc1872b9cc6cb00a987 (patch)
tree9447301531e1fcd7aed7e25bed058c54b3c4caef
parentMerge branch 'pci/controller/rockchip' (diff)
parentPCI: tegra194: Move controller cleanups to pex_ep_event_pex_rst_deassert() (diff)
downloadlinux-c60603ca1d2c8da9a7a6cdc1872b9cc6cb00a987.tar.xz
linux-c60603ca1d2c8da9a7a6cdc1872b9cc6cb00a987.zip
Merge branch 'pci/controller/tegra194'
- Move endpoint controller cleanups that depend on refclk from the host to the notifier that tells us the host has deasserted PERST# (Manivannan Sadhasivam) * pci/controller/tegra194: PCI: tegra194: Move controller cleanups to pex_ep_event_pex_rst_deassert()
-rw-r--r--drivers/pci/controller/dwc/pcie-tegra194.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
index f4bd7f5275cf..5103995cd6c7 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -1704,9 +1704,6 @@ 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);
- pci_epc_deinit_notify(pcie->pci.ep.epc);
- dw_pcie_ep_cleanup(&pcie->pci.ep);
-
reset_control_assert(pcie->core_rst);
tegra_pcie_disable_phy(pcie);
@@ -1785,6 +1782,10 @@ static void pex_ep_event_pex_rst_deassert(struct tegra_pcie_dw *pcie)
goto fail_phy;
}
+ /* Perform cleanup that requires refclk */
+ pci_epc_deinit_notify(pcie->pci.ep.epc);
+ dw_pcie_ep_cleanup(&pcie->pci.ep);
+
/* Clear any stale interrupt statuses */
appl_writel(pcie, 0xFFFFFFFF, APPL_INTR_STATUS_L0);
appl_writel(pcie, 0xFFFFFFFF, APPL_INTR_STATUS_L1_0_0);