[PATCH v6 0/4] Add quirks to proceed PME handshake in DWC PM
From: Richard Zhu <hongxing.zhu@nxp.com>
Date: 2025-09-24 07:23:52
Also in:
imx, linux-pci, lkml
Refer to PCIe r6.0, sec 5.2, fig 5-1 Link Power Management State Flow Diagram. Both L0 and L2/L3 Ready can be transferred to LDn directly. It's harmless to let dw_pcie_suspend_noirq() proceed suspend after the PME_Turn_Off is sent out, whatever the LTSSM state is in L2 or L3 after a recommended 10ms max wait refer to PCIe r6.0, sec 5.3.3.2.1 PME Synchronization. The LTSSM states of i.MX6QP PCIe is inaccessible after the PME_Turn_Off is kicked off. To handle this case, don't poll L2 state and add one max 10ms delay if QUIRK_NOL2POLL_IN_PM flag is existing in suspend. Main changes in v6: Refer to Mani' comments. - Update the commit message of first patch. - Squash the 6-3 and 6-4 into 6-2 of v5 patch-set. - Add the Fixes tag, and CC stable list. Main changes in v5: - Fix build warning caused by 6-1 patch. v4:https://lore.kernel.org/imx/20250822084341.3160738-1-hongxing.zhu@nxp.com/ (local) Main changes in v4: - Add one patch[1/6] to remove the L1SS check during L2 entry. - Update the code comments of 2/6 patch and commit description of 6/6 patch. - Add background to 5/6 to describe why skip PME_Turn_off message when no endpoint device is connected. v3:https://lore.kernel.org/imx/20250818073205.1412507-1-hongxing.zhu@nxp.com/ (local) Main changes in v3: - Adjust the patch sequence to avoid the build break. - Update the commit message. v2:https://lore.kernel.org/imx/20250618024116.3704579-1-hongxing.zhu@nxp.com/ (local) Main changes in v2: Add the following two patches. - Skip PME_Turn_Off message if there is no endpoint connected. - Don't return error when wait for link up. v1:https://lore.kernel.org/imx/20250408065221.1941928-1-hongxing.zhu@nxp.com/ (local) [PATCH v6 1/4] PCI: dwc: Remove the L1SS check before putting the [PATCH v6 2/4] PCI: dwc: Don't poll L2 if QUIRK_NOL2POLL_IN_PM is [PATCH v6 3/4] PCI: dwc: Skip PME_Turn_Off message if there is no [PATCH v6 4/4] PCI: dwc: Don't return error when wait for link up in drivers/pci/controller/dwc/pci-imx6.c | 4 ++++ drivers/pci/controller/dwc/pcie-designware-host.c | 62 +++++++++++++++++++++++++++++++++++--------------------------- drivers/pci/controller/dwc/pcie-designware.h | 4 ++++ 3 files changed, 43 insertions(+), 27 deletions(-)