On Mon, Aug 18, 2025 at 03:32:04PM +0800, Richard Zhu wrote: > Skip PME_Turn_Off message if there is no endpoint connected. What's the value of doing this? Is this to make something faster? If so, what and by how much? Or does it fix something that's currently broken? Seems like the discussion at https://lore.kernel.org/linux-pci/20241107084455.3623576-1-hongxing.zhu@xxxxxxx/t/#u might be relevant. This commit log only restates what the code does. In my opinion we need actual justification for making this change. > Signed-off-by: Richard Zhu <hongxing.zhu@xxxxxxx> > Reviewed-by: Frank Li <Frank.Li@xxxxxxx> > --- > drivers/pci/controller/dwc/pcie-designware-host.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c > index 20a7f827babbf..868e7db4e3381 100644 > --- a/drivers/pci/controller/dwc/pcie-designware-host.c > +++ b/drivers/pci/controller/dwc/pcie-designware-host.c > @@ -1016,12 +1016,15 @@ int dw_pcie_suspend_noirq(struct dw_pcie *pci) > if (dw_pcie_readw_dbi(pci, offset + PCI_EXP_LNKCTL) & PCI_EXP_LNKCTL_ASPM_L1) > return 0; > > - if (pci->pp.ops->pme_turn_off) { > - pci->pp.ops->pme_turn_off(&pci->pp); > - } else { > - ret = dw_pcie_pme_turn_off(pci); > - if (ret) > - return ret; > + /* Skip PME_Turn_Off message if there is no endpoint connected */ > + if (dw_pcie_get_ltssm(pci) > DW_PCIE_LTSSM_DETECT_WAIT) { > + if (pci->pp.ops->pme_turn_off) { > + pci->pp.ops->pme_turn_off(&pci->pp); > + } else { > + ret = dw_pcie_pme_turn_off(pci); > + if (ret) > + return ret; > + } > } > > if (dwc_quirk(pci, QUIRK_NOL2POLL_IN_PM)) { > -- > 2.37.1 >