Re: [PATCH 0/2] PCI/ASPM: Allow quirks to avoid L0s and L1
- To: linux-pci@vger.kernel.org
- Cc: Christian Zigotzky <chzigotzky@xenosoft.de>, Manivannan Sadhasivam <mani@kernel.org>, mad skateman <madskateman@gmail.com>, "R . T . Dickinson" <rtd2@xtra.co.nz>, Darren Stevens <darren@stevens-zone.net>, John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>, Lukas Wunner <lukas@wunner.de>, luigi burdo <intermediadc@hotmail.com>, Al <al@datazap.net>, Roland <rol7and@gmx.com>, Hongxing Zhu <hongxing.zhu@nxp.com>, hypexed@yahoo.com.au, linuxppc-dev@lists.ozlabs.org, debian-powerpc@lists.debian.org, linux-kernel@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>
- Subject: Re: [PATCH 0/2] PCI/ASPM: Allow quirks to avoid L0s and L1
- From: Bjorn Helgaas <helgaas@kernel.org>
- Date: Thu, 6 Nov 2025 17:45:51 -0600
- Message-id: <[🔎] 20251106234551.GA1976429@bhelgaas>
- In-reply-to: <[🔎] 20251106183643.1963801-1-helgaas@kernel.org>
On Thu, Nov 06, 2025 at 12:36:37PM -0600, Bjorn Helgaas wrote:
> From: Bjorn Helgaas <bhelgaas@google.com>
>
> We enabled ASPM too aggressively in v6.18-rc1. f3ac2ff14834 ("PCI/ASPM:
> Enable all ClockPM and ASPM states for devicetree platforms") enabled ASPM
> L0s, L1, and (if advertised) L1 PM Substates.
>
> L1 PM Substates and Clock PM in particular are a problem because they
> depend on CLKREQ# and sometimes device-specific configuration, and none of
> this is discoverable in a generic way.
>
> df5192d9bb0e ("PCI/ASPM: Enable only L0s and L1 for devicetree platforms")
> (v6.18-rc3) backed off and omitted Clock PM and L1 Substates.
>
> L0s and L1 are generically discoverable, but some devices advertise them
> even though they don't work correctly. This series is a way to avoid L0s
> and L1 in that case.
>
> Bjorn Helgaas (2):
> PCI/ASPM: Cache Link Capabilities so quirks can override them
> PCI/ASPM: Avoid L0s and L1 on Freescale Root Ports
>
> drivers/pci/pcie/aspm.c | 42 ++++++++++++++++++++---------------------
> drivers/pci/probe.c | 5 ++---
> drivers/pci/quirks.c | 12 ++++++++++++
> include/linux/pci.h | 1 +
> 4 files changed, 36 insertions(+), 24 deletions(-)
I put these on for-linus, hopefully for v6.18. I would like to have
some review and testing before asking Linus to pull them, especially
since the first one is not completely trivial and is a change (but
shouldn't be a functional change) for all platforms.
Reply to: