On Wed, 12 Nov 2025, Bjorn Helgaas wrote: > > > + pci_info(pdev, "ASPM:%s%s removed from Link Capabilities to avoid > > > device defect\n", > > > + lnkcap & PCI_EXP_LNKCAP_ASPM_L0S ? " L0s" : "", > > > + lnkcap & PCI_EXP_LNKCAP_ASPM_L1 ? " L1" : ""); > > > > I think this gives a false impression that the ASPM CAPs are being > > removed from the LnkCap register. This function is just removing it > > from the internal cache and the LnkCap register is left unchanged. > > Very true, this is confusing since we're not actually changing the > LnkCap register, so lspci etc will still show these states as > supported. The quirk needs to work for arbitrary devices, and there's > no generic way to change LnkCap, so the quirk can't do that.
There's no way to poke at hw, but that is only relevant for x86 I believe and not the default access method for `lspci' anyway. For sysfs we do it already for things such as fixing the device class; cf. `quirk_isa_bridge' (arch/alpha/kernel/pci.c), so why is it a problem here? Unless we want to keep it for `lspci' actually. Maciej
