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

Bjorn Helgaas helgaas at kernel.org
Mon Nov 24 14:50:30 PST 2025


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



More information about the linux-arm-kernel mailing list