Re: [PATCH v8 2/2] PCI: dwc: Don't return error when wait for link up in dw_pcie_resume_noirq()
From: Manivannan Sadhasivam <mani@kernel.org>
Date: 2026-01-15 15:35:59
Also in:
imx, linux-pci, lkml, stable
On Wed, Jan 14, 2026 at 06:46:23AM +0000, Hongxing Zhu wrote:
quoted
-----Original Message----- From: Manivannan Sadhasivam <mani@kernel.org> Sent: 2026年1月13日 23:30 To: Hongxing Zhu <hongxing.zhu@nxp.com> Cc: Frank Li <frank.li@nxp.com>; jingoohan1@gmail.com; l.stach@pengutronix.de; lpieralisi@kernel.org; kwilczynski@kernel.org; robh@kernel.org; bhelgaas@google.com; shawnguo@kernel.org; s.hauer@pengutronix.de; kernel@pengutronix.de; festevam@gmail.com; linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org; imx@lists.linux.dev; linux-kernel@vger.kernel.org; stable@vger.kernel.org Subject: Re: [PATCH v8 2/2] PCI: dwc: Don't return error when wait for link up in dw_pcie_resume_noirq() On Wed, Jan 07, 2026 at 10:45:53AM +0800, Richard Zhu wrote:quoted
When waiting for the PCIe link to come up, both link up and link down are valid results depending on the device state. Since the link may come up later and to get rid of the following mis-reported PM errors. Do not return an -ETIMEDOUT error, as the outcome has already been reported in dw_pcie_wait_for_link(). PM error logs introduced by the -ETIMEDOUT error return. imx6q-pcie 33800000.pcie: Phy link never came up imx6q-pcie 33800000.pcie: PM: dpm_run_callback(): genpd_resume_noirq returns -110 imx6q-pcie 33800000.pcie: PM: failed to resume noirq: error -110 Cc: stable@vger.kernel.org Fixes: 4774faf854f5 ("PCI: dwc: Implement generic suspend/resume functionality") Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> --- drivers/pci/controller/dwc/pcie-designware-host.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)diff --git a/drivers/pci/controller/dwc/pcie-designware-host.cb/drivers/pci/controller/dwc/pcie-designware-host.c index 06cbfd9e1f1e..025e11ebd571 100644--- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c@@ -1245,10 +1245,9 @@ int dw_pcie_resume_noirq(struct dw_pcie *pci) if (ret) return ret; - ret = dw_pcie_wait_for_link(pci); - if (ret) - return ret; + /* Ignore errors, the link may come up later */ + dw_pcie_wait_for_link(pci);It is not safe to ignore failures during resume. Because, if a device gets removed during suspend, the link up error will be unnoticed. I've proposed a different logic in this series, which should address your issue: https://lore.kern/ el.org%2Flinux-pci%2F20260107-pci-dwc-suspend-rework-v4-0-9b5f3c72df0a% 40oss.qualcomm.com%2F&data=05%7C02%7Chongxing.zhu%40nxp.com%7Cf8 79871f9d0445aa0a3c08de52b8a2c0%7C686ea1d3bc2b4c6fa92cd99c5c301635 %7C0%7C0%7C639039150121991830%7CUnknown%7CTWFpbGZsb3d8eyJFbXB 0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbC IsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=PNdsT530dbRQkgYsrr99gB1cUE BLOkynvciC9tiB0Ic%3D&reserved=0 Please test it out.Hi Mani: You're right. Tested on i.MX platforms, no error return anymore. Only "Device not found" is dumped out when no endpoint device is connected. Thanks. Tested-by: Richard Zhu <hongxing.zhu@nxp.com>
Please share the tag by replying to that series. - Mani -- மணிவண்ணன் சதாசிவம்