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

Bjorn Helgaas
2025-11-24T22:50:39Z

On Tue, Nov 18, 2025 at 03:42:14PM -0600, Bjorn Helgaas wrote:
> 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

I applied these (except for the arm64: dts: patch) to
pci/controller/dwc, planned for v6.19. Same as posted here except I
dropped dw_pcie_hide_unsupported_l1ss() from
dw_pcie_ep_init_registers().

> .../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
>