]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
PCI: dwc: Always stop link in the dw_pcie_suspend_noirq
authorRichard Zhu <hongxing.zhu@nxp.com>
Tue, 10 Dec 2024 08:15:56 +0000 (16:15 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 8 Feb 2025 09:02:03 +0000 (10:02 +0100)
[ Upstream commit 86a016e278b78cc2281edd4ffaddbc011c87a593 ]

On the i.MX8QM, PCIe link can't be re-established again in
dw_pcie_resume_noirq(), if the LTSSM_EN bit is not cleared
properly in dw_pcie_suspend_noirq().

So, add dw_pcie_stop_link() to dw_pcie_suspend_noirq() to fix
this issue and to align the suspend/resume functions since there
is dw_pcie_start_link() in dw_pcie_resume_noirq() already.

Fixes: 4774faf854f5 ("PCI: dwc: Implement generic suspend/resume functionality")
Link: https://lore.kernel.org/r/20241210081557.163555-2-hongxing.zhu@nxp.com
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
[kwilczynski: commit log]
Signed-off-by: Krzysztof WilczyƄski <kwilczynski@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pci/controller/dwc/pcie-designware-host.c

index d2291c3ceb8bed937944e88323dff97d568ef665..cf146ff6a3ea8a06c4486f2c44abac4e1fec500d 100644 (file)
@@ -946,6 +946,7 @@ int dw_pcie_suspend_noirq(struct dw_pcie *pci)
                return ret;
        }
 
+       dw_pcie_stop_link(pci);
        if (pci->pp.ops->deinit)
                pci->pp.ops->deinit(&pci->pp);