Re: [PATCH v2 0/3] PCI: dwc: Check for device presence in suspend and resume

From: Vincent Guittot
Date: Mon Nov 10 2025 - 05:49:03 EST


On Fri, 7 Nov 2025 at 05:43, Manivannan Sadhasivam
<manivannan.sadhasivam@xxxxxxxxxxxxxxxx> wrote:
>
> Hi,
>
> This series aims to fix the usage of dw_pcie_link_up() API to check for Link up
> during system suspend. The motivation for this series comes from recent
> discussions [1] [2], where developers wanted to skip PME_Turn_Off broadcast in
> dw_pcie_suspend_noirq() API when devices are not attached to the bus. They ended
> up using dw_pcie_link_up() to check for the device presence due to the bad
> example in the pcie-qcom driver which does the same. The usage of
> dw_pcie_link_up() API here would be racy as the link can go down at any time
> after the check.
>
> So to properly check for the device presence, this series introduces an API,
> pci_root_ports_have_device(), that accepts the Root bus pointer and checks for
> the presence of a device under any of the Root Ports. This API is used to
> replace the dw_pcie_link_up() check in suspend path of pcie-qcom driver and also
> used to skip the PME_Turn_Off brodcast message in dwc_pcie_suspend_noirq() API
> and to skip waiting for the link up in dwc_pcie_resume_noirq() API.
>
> Testing
> =======
>
> This series is tested on Qualcomm Lenovo Thinkpad T14s and observed no
> functional change during the system suspend path.
>
> - Mani
>
> [1] https://lore.kernel.org/linux-pci/CAKfTPtCtHquxtK=Zx2WSNm15MmqeUXO8XXi8FkS4EpuP80PP7g@xxxxxxxxxxxxxx/
> [2] https://lore.kernel.org/linux-pci/27516921.17f2.1997bb2a498.Coremail.zhangsenchuan@xxxxxxxxxxxxxxxxxx/
>
> Changes in v2:
>
> * Skipped waiting for link up in dwc_pcie_resume_noirq() if there was no device
> before suspend.
> * Fixed the kdoc for pci_root_ports_have_device()
>
> Manivannan Sadhasivam (3):
> PCI: host-common: Add an API to check for any device under the Root
> Ports
> PCI: qcom: Check for the presence of a device instead of Link up
> during suspend
> PCI: dwc: Check for the device presence during suspend and resume

You already queued it but FWIW
Tested-by: Vincent Guittot <vincent.guittot@xxxxxxxxxx>

>
> .../pci/controller/dwc/pcie-designware-host.c | 13 ++++++++++++
> drivers/pci/controller/dwc/pcie-qcom.c | 6 ++++--
> drivers/pci/controller/pci-host-common.c | 21 +++++++++++++++++++
> drivers/pci/controller/pci-host-common.h | 2 ++
> 4 files changed, 40 insertions(+), 2 deletions(-)
>
> --
> 2.48.1
>