linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] PCI: dwc: Advertise L1 PM Substates only if driver requests it
@ 2025-11-11 22:16 Bjorn Helgaas
  2025-11-11 22:16 ` [PATCH 1/4] " Bjorn Helgaas
                   ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: Bjorn Helgaas @ 2025-11-11 22:16 UTC (permalink / raw)
  To: Niklas Cassel, Shawn Lin
  Cc: Manivannan Sadhasivam, Lorenzo Pieralisi,
	Krzysztof Wilczyński, Rob Herring, Heiko Stuebner,
	Kever Yang, Simon Xue, Damien Le Moal, Dragan Simic,
	FUKAUMI Naoki, Diederik de Haas, Richard Zhu, Frank Li,
	Lucas Stach, Shawn Guo, Sascha Hauer, Fabio Estevam, Conor Dooley,
	Krzysztof Kozlowski, Thierry Reding, Jonathan Hunter, Hans Zhang,
	linux-tegra, linux-pci, linux-arm-kernel, linux-rockchip, kernel,
	Bjorn Helgaas

From: Bjorn Helgaas <bhelgaas@google.com>

This is a follow-up to Niklas's patch at
https://lore.kernel.org/r/20251017163252.598812-2-cassel@kernel.org.  That
patch clears the L1 PM Substate Supported bits for the dw-rockchip driver,
which doesn't yet do the device configuration to support the L1 Substates.

This series does the same thing, but in the DWC core so it applies to all
DWC-based drivers.  Drivers that do support L1 Substates (currently
tegra194 and qcom) indicate that by setting "dw_pcie.l1ss_support", and the
DWC core will leave the L1 PM Substate Supported bits alone.

This also includes Shawn's patches to add the dw-rockchip support for L1
Substates.

The problem this fixes is that users are currently able to enable L1
Substates, e.g., by

  - building with with CONFIG_PCIEASPM_POWER_SUPERSAVE=y
  - booting with "pcie_aspm.policy=powersupersave"
  - echo powersupersave > /sys/module/pcie_aspm/parameters/policy
  - echo 1 > /sys/bus/pci/devices/.../link/l1_1_aspm

but this breaks devices if the platform doesn't support CLKREQ# or lacks
Root Port configuration.  This series avoids that problem by preventing the
kernel from enabling L1.x in the first place.

Bjorn Helgaas (2):
  PCI: dwc: Advertise L1 PM Substates only if driver requests it
  PCI: tegra194: Remove unnecessary L1SS disable code

Shawn Lin (2):
  PCI: dw-rockchip: Configure L1sub support
  arm64: dts: rockchip: Add PCIe clkreq stuff for RK3588 EVB1

 .../boot/dts/rockchip/rk3588-evb1-v10.dts     |  7 +++-
 .../pci/controller/dwc/pcie-designware-ep.c   |  2 +
 .../pci/controller/dwc/pcie-designware-host.c |  2 +
 drivers/pci/controller/dwc/pcie-designware.c  | 24 ++++++++++++
 drivers/pci/controller/dwc/pcie-designware.h  |  2 +
 drivers/pci/controller/dwc/pcie-dw-rockchip.c | 38 +++++++++++++++++++
 drivers/pci/controller/dwc/pcie-qcom.c        |  2 +
 drivers/pci/controller/dwc/pcie-tegra194.c    | 35 ++---------------
 8 files changed, 78 insertions(+), 34 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 22+ messages in thread
* [PATCH 0/4] Add L1 substates support for Rockchip platforms
@ 2025-10-21  7:48 Shawn Lin
  2025-10-21  7:48 ` [PATCH 4/4] arm64: dts: rockchip: Add PCIe clkreq stuff for RK3588 EVB1 Shawn Lin
  0 siblings, 1 reply; 22+ messages in thread
From: Shawn Lin @ 2025-10-21  7:48 UTC (permalink / raw)
  To: Heiko Stuebner, Manivannan Sadhasivam, Bjorn Helgaas
  Cc: Thierry Reding, linux-rockchip, Niklas Cassel, linux-pci,
	Shawn Lin


This patch-set adds ASPM L1 substates support for Rockchip platform.
As supports-clkreq is used by some more host drivers, patch 1 creates
of_pci_clkreq_present() and patch 2 reuse it. Patch 3 enables or disables
L1 substates on Rockchip driver by checking if clkreq# is ready. Patch 4
enable L1 substates on RK3588-EVB1.

This series of patches is tested on RK3588-EVB1 with a NVMe connected
to the pcie3x4 slot(actually I tested several NVMes), A RTL8111 NIC card
connected pcie2x1l1 and a broadcom Wi-Fi connected to pcie2x1l0. All works
fine under L1 substates by checking the LTSSM.



Shawn Lin (1):
  arm64: dts: rockchip: Add PCIe clkreq stuff for RK3588 EVB1
  PCI: dw-rockchip: Add L1sub support
  PCI: tegra194: Use of_pci_clkreq_present() instead
  PCI: of: Add of_pci_clkreq_present()


 arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2025-11-18 20:45 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-11 22:16 [PATCH 0/4] PCI: dwc: Advertise L1 PM Substates only if driver requests it Bjorn Helgaas
2025-11-11 22:16 ` [PATCH 1/4] " Bjorn Helgaas
2025-11-11 22:48   ` Frank Li
2025-11-11 23:07     ` Bjorn Helgaas
2025-11-12  1:03   ` Shawn Lin
2025-11-18 19:48     ` Bjorn Helgaas
2025-11-12  8:22   ` Niklas Cassel
2025-11-12 17:51     ` Manivannan Sadhasivam
2025-11-18 20:22       ` Bjorn Helgaas
2025-11-18 20:36     ` Bjorn Helgaas
2025-11-18 20:45       ` Niklas Cassel
2025-11-11 22:16 ` [PATCH 2/4] PCI: tegra194: Remove unnecessary L1SS disable code Bjorn Helgaas
2025-11-12  8:29   ` Niklas Cassel
2025-11-18 18:59     ` Bjorn Helgaas
2025-11-18 20:06       ` Niklas Cassel
2025-11-18 20:31         ` Bjorn Helgaas
2025-11-11 22:16 ` [PATCH 3/4] PCI: dw-rockchip: Configure L1sub support Bjorn Helgaas
2025-11-12  2:49   ` Hans Zhang
2025-11-12  8:30   ` Diederik de Haas
2025-11-12  8:36   ` Niklas Cassel
2025-11-11 22:16 ` [PATCH 4/4] arm64: dts: rockchip: Add PCIe clkreq stuff for RK3588 EVB1 Bjorn Helgaas
  -- strict thread matches above, loose matches on Subject: below --
2025-10-21  7:48 [PATCH 0/4] Add L1 substates support for Rockchip platforms Shawn Lin
2025-10-21  7:48 ` [PATCH 4/4] arm64: dts: rockchip: Add PCIe clkreq stuff for RK3588 EVB1 Shawn Lin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).