[PATCH v2 0/4] PCI: dwc: Advertise L1 PM Substates only if driver requests it

Bjorn Helgaas
2025-11-18T21:43:30Z

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 L1SS 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 | 40 ++++++++++++++++
drivers/pci/controller/dwc/pcie-qcom.c | 2 +
drivers/pci/controller/dwc/pcie-tegra194.c | 48 ++++---------------
8 files changed, 85 insertions(+), 42 deletions(-)

--
2.43.0