]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_T...
authorManivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Tue, 17 Feb 2026 11:31:42 +0000 (17:01 +0530)
committerManivannan Sadhasivam <mani@kernel.org>
Thu, 26 Feb 2026 07:43:44 +0000 (13:13 +0530)
PCIe spec r7.0, sec 5.3.3.2.1, recommends proceeding with L2/L3 sequence
even if one or devices do not respond with PME_TO_Ack message after 10ms
timeout.

So just print a warning if the timeout happens and proceed with the system
suspend.

Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8650-HDK
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260217113142.9140-1-manivannan.sadhasivam@oss.qualcomm.com
drivers/pci/controller/dwc/pcie-designware-host.c

index 6ae6189e9b8a9021c99ece17504834650debd86b..ba183fc3e77cd936a4b691673378fcae47c6f456 100644 (file)
@@ -1256,9 +1256,13 @@ int dw_pcie_suspend_noirq(struct dw_pcie *pci)
                                PCIE_PME_TO_L2_TIMEOUT_US/10,
                                PCIE_PME_TO_L2_TIMEOUT_US, false, pci);
        if (ret) {
-               /* Only log message when LTSSM isn't in DETECT or POLL */
-               dev_err(pci->dev, "Timeout waiting for L2 entry! LTSSM: 0x%x\n", val);
-               return ret;
+               /*
+                * Failure is non-fatal since spec r7.0, sec 5.3.3.2.1,
+                * recommends proceeding with L2/L3 sequence even if one or more
+                * devices do not respond with PME_TO_Ack after 10ms timeout.
+                */
+               dev_warn(pci->dev, "Timeout waiting for L2 entry! LTSSM: 0x%x\n", val);
+               ret = 0;
        }
 
        /*