* [PATCH v2] PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_TO_Ack message
@ 2026-02-17 11:31 Manivannan Sadhasivam
2026-02-17 15:40 ` Neil Armstrong
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Manivannan Sadhasivam @ 2026-02-17 11:31 UTC (permalink / raw)
To: jingoohan1, mani, lpieralisi, kwilczynski, bhelgaas
Cc: robh, linux-pci, linux-kernel, Manivannan Sadhasivam, Neil Armstrong
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>
---
Changes in v2:
* Added 'ret = 0' to avoid failing callers
drivers/pci/controller/dwc/pcie-designware-host.c | 10 +++++++---
1 file 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;
}
/*
--
2.51.0
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH v2] PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_TO_Ack message
2026-02-17 11:31 [PATCH v2] PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_TO_Ack message Manivannan Sadhasivam
@ 2026-02-17 15:40 ` Neil Armstrong
2026-02-18 17:07 ` Frank Li
2026-02-26 7:44 ` Manivannan Sadhasivam
2 siblings, 0 replies; 4+ messages in thread
From: Neil Armstrong @ 2026-02-17 15:40 UTC (permalink / raw)
To: Manivannan Sadhasivam, jingoohan1, mani, lpieralisi, kwilczynski,
bhelgaas
Cc: robh, linux-pci, linux-kernel
On 2/17/26 12:31, Manivannan Sadhasivam wrote:
> 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>
> ---
>
> Changes in v2:
>
> * Added 'ret = 0' to avoid failing callers
>
> drivers/pci/controller/dwc/pcie-designware-host.c | 10 +++++++---
> 1 file 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;
> }
>
> /*
Allows ath12k to go ind3cold with [1]:
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8650-HDK
[1] https://lore.kernel.org/all/20260217-d3cold-v2-0-89b322864043@oss.qualcomm.com/
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH v2] PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_TO_Ack message
2026-02-17 11:31 [PATCH v2] PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_TO_Ack message Manivannan Sadhasivam
2026-02-17 15:40 ` Neil Armstrong
@ 2026-02-18 17:07 ` Frank Li
2026-02-26 7:44 ` Manivannan Sadhasivam
2 siblings, 0 replies; 4+ messages in thread
From: Frank Li @ 2026-02-18 17:07 UTC (permalink / raw)
To: Manivannan Sadhasivam
Cc: jingoohan1, mani, lpieralisi, kwilczynski, bhelgaas, robh,
linux-pci, linux-kernel, Neil Armstrong
On Tue, Feb 17, 2026 at 05:01:42PM +0530, Manivannan Sadhasivam wrote:
> 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>
> ---
Reviewed-by: Frank Li <Frank.Li@nxp.com>
>
> Changes in v2:
>
> * Added 'ret = 0' to avoid failing callers
>
> drivers/pci/controller/dwc/pcie-designware-host.c | 10 +++++++---
> 1 file 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;
> }
>
> /*
> --
> 2.51.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH v2] PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_TO_Ack message
2026-02-17 11:31 [PATCH v2] PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_TO_Ack message Manivannan Sadhasivam
2026-02-17 15:40 ` Neil Armstrong
2026-02-18 17:07 ` Frank Li
@ 2026-02-26 7:44 ` Manivannan Sadhasivam
2 siblings, 0 replies; 4+ messages in thread
From: Manivannan Sadhasivam @ 2026-02-26 7:44 UTC (permalink / raw)
To: jingoohan1, lpieralisi, kwilczynski, bhelgaas, Manivannan Sadhasivam
Cc: robh, linux-pci, linux-kernel, Neil Armstrong
On Tue, 17 Feb 2026 17:01:42 +0530, Manivannan Sadhasivam wrote:
> 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.
>
> [...]
Applied, thanks!
[1/1] PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_TO_Ack message
commit: eed390775470ff0db32cce37a681f3acc2b941c3
Best regards,
--
Manivannan Sadhasivam <mani@kernel.org>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-02-26 7:44 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-17 11:31 [PATCH v2] PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_TO_Ack message Manivannan Sadhasivam
2026-02-17 15:40 ` Neil Armstrong
2026-02-18 17:07 ` Frank Li
2026-02-26 7:44 ` Manivannan Sadhasivam
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®