summaryrefslogtreecommitdiff
path: root/drivers/pci/controller
diff options
context:
space:
mode:
authorManivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>2026-02-17 17:01:42 +0530
committerManivannan Sadhasivam <mani@kernel.org>2026-02-26 13:13:44 +0530
commiteed390775470ff0db32cce37a681f3acc2b941c3 (patch)
tree382faa97a3a36f97aaa1e4f4bacf6839a08b4ee2 /drivers/pci/controller
parent6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f (diff)
PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_TO_Ack message
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
Diffstat (limited to 'drivers/pci/controller')
-rw-r--r--drivers/pci/controller/dwc/pcie-designware-host.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
index 6ae6189e9b8a..ba183fc3e77c 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -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;
}
/*