Re: [PATCH] acpi: pci_root: Add quirks table for _OSC support

"Rafael J. Wysocki (Intel)" <[email protected]> Tue, 4 Aug 2026 15:08:26 +0200
Newsgroups org.kernel.vger.linux-pci,org.kernel.vger.linux-acpi,org.kernel.vger.linux-kernel
Message-ID <CAJZ5v0iY-SjCG3hdqggbchBA1DrYw04ARyNuzoyO67NF0dt2Ww@mail.gmail.com>
On Tue, Aug 4, 2026 at 2:46=E2=80=AFPM Rafael J. Wysocki (Intel)
<[email protected]> wrote:
>
> On Mon, Aug 3, 2026 at 10:35=E2=80=AFPM Derek J. Clark
> <[email protected]> wrote:
> >
> > The MSI Claw A8 hard-locks on resume from s2idle whenever an SD/MMC
> > card is present in the RTS525A card reader (10ec:525a, PCI ID). This
> > issue is not present on the Lenovo Legion Go with the same card reader.
> > The primary difference is that the Claw A8 withholds LTR and DPC while
> > granting ASPM control to the OS, leading to a split ownership. The issu=
e
> > can be mitigated by passing pcie_asmp=3Doff, but quirking on the pci_de=
v
>
> You mean pcie_aspm=3Doff I suppose.
>
> > in pci/quirks has no effect.
> >
> > Attempted quirks included use of pci_disable_link_state(),
> > dev->link_state =3D NULL, manually zeroing aspm_l0s_support/aspm_l1_sup=
port
> > via DECLARE_PCI_FIXUP_FINAL, and pcie_aspm_remove_cap() on
> > DECLARE_PCI_FIXUP_HEADER. Only by disabling ASPM on the root hub is the
> > system able to resume successfully.
>
> So if there is a clash between the firmware and the OS, the question
> is why it only happens during system resume and only for this specific
> device in this specific configuration.
>
> If disabling ASPM globally makes the symptom go away, it certainly is
> related to ASPM, but it is kind of hard to say what exactly the
> relationship is at this point.

Besides, does disabling ASPM globally affect what happens to LTR and
DPC?  I think so.

If that is the case, maybe the suspend-resume code paths skip LTR and
DPC if ASPM is disabled and they do something to those capabilities
otherwise?  LTR and DPC generally should not be touched by the system
suspend-resume paths if native_ltr and native_dpc are zero,
respectively.