Re: [PATCH v5 0/8] PCI: dw-rockchip: add system suspend support

From: Shawn Lin

Date: Tue Mar 24 2026 - 10:07:47 EST


Hi Sebastian

在 2026/03/17 星期二 3:10, Sebastian Reichel 写道:
I've recently been working on fixing up at least basic system suspend
support on the Rockchip RK3576 platform. The last open issue is missing
support in the PCIe driver. This series is a follow-up for Shawn Lin's
series with feedback from Niklas Cassel and Manivannan Sadhasivam being
handled as well as some of my own changes fixing up things I noticed.

In opposite to Shawn Lin I did not test with different peripherals as my
main goal is getting basic suspend to ram working in the first place. I
did notice issues with the Broadcom WLAN card on the RK3576 EVB.
Suspending that platform without a driver being probed works, but after
probing brcmfmac suspend is aborted because brcmf_pcie_pm_enter_D3()
does not work. As far as I can tell the problem is unrelated to the
Rockchip PCIe driver.

Thanks for the patchset. It doesn't cleanly apply to new -rc now so I
assume it need a rebase. Anyway, I amended this series to apply them
to -rc5 and tested them on several platforms, it works fine.

However, I think patch 7 actually put the host and device into D3cold
unconditionly, with reset the controller,power-off 3v3 and deassert
perst# which doesn't follow NVMe's requirement at least.

Krishna is working on it [1], it would be better to follow the same
patten.

[1] https://lore.kernel.org/all/20260217-d3cold-v2-0-89b322864043@xxxxxxxxxxxxxxxx/


Changes since PATCHv4:
* https://lore.kernel.org/r/20251029-rockchip-pcie-system-suspend-v4-0-ce2e1b0692d2@xxxxxxxxxxxxx
* rebase to v7.0-rc1
* Add an RFC patch at the end with some bits I found in the Rockchip vendor kernel;
* Made some tests on Rock 5B+ (RK3588); with this patch series suspending works
when setting pm_test to devices. A full system suspend fails in a later step,
but that is independent of PCIe.

Changes since PATCHv3:
* https://lore.kernel.org/linux-pci/1744940759-23823-1-git-send-email-shawn.lin@xxxxxxxxxxxxxx/
* rename rockchip_pcie_get_ltssm to rockchip_pcie_get_ltssm_status_reg
in a separate patch (Niklas Cassel)
* rename rockchip_pcie_get_pure_ltssm to rockchip_pcie_get_ltssm_state
in a separate patch (Niklas Cassel)
* Move devm_phy_get out of phy_init to probe in a separate patch
(Manivannan Sadhasivam)
* Add helper function for enhanced LTSSM control mode in a separate patch
(Niklas Cassel)
* Add helper function for controller mode in a separate patch
(Niklas Cassel)
* Add helper function for DDL indicator in a separate patch
(Niklas Cassel)
* Move rockchip_pcie_pme_turn_off implementation in a separate patch
* Rebase to v6.18-rc3 using new FIELD_PREP_WM16()
* Improve readability of PME_TURN_OFF/PME_TO_ACK defines (Manivannan Sadhasivam)
* Fix usage of reverse Xmas (Manivannan Sadhasivam)
* Assert PERST# before turning off other resources (Manivannan Sadhasivam)
* Improve some error messages (Manivannan Sadhasivam)
* Rename goto labels as per their purpose (Manivannan Sadhasivam)
* Add extra patch for dw_pcie_resume_noirq, since I've seen errors
during resume on boards not having anything plugged into their PCIe
port

Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
---
Sebastian Reichel (8):
PCI: dw-rockchip: Restore vpcie3v3 regulator handle
PCI: dw-rockchip: Move devm_phy_get out of phy_init
PCI: dw-rockchip: Add helper function for enhanced LTSSM control mode
PCI: dw-rockchip: Add helper function for controller mode
PCI: dw-rockchip: Add helper function for DDL indicator
PCI: dw-rockchip: Add pme_turn_off support
PCI: dw-rockchip: Add system PM support
[RFC] PCI: dw-rockchip: port some suspend code from vendor kernel

drivers/pci/controller/dwc/pcie-dw-rockchip.c | 242 ++++++++++++++++++++++----
1 file changed, 206 insertions(+), 36 deletions(-)
---
base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
change-id: 20251028-rockchip-pcie-system-suspend-86cf08a7b229

Best regards,