Re: [PATCH v2] pci: quirks: Disable native PCIe hotplug on MSI Claw A8 root bridge
From: Derek John Clark
Date: Wed Aug 12 2026 - 16:20:35 EST
On Wed, Aug 12, 2026 at 11:20 AM Lukas Wunner <lukas@xxxxxxxxx> wrote:
>
> On Tue, Aug 11, 2026 at 07:19:12AM +0200, Lukas Wunner wrote:
> > On Mon, Aug 10, 2026 at 01:57:58PM -0700, Derek John Clark wrote:
> > > I suppose that is true, but in that case we still wouldn't be able to
> > > use it as the root fs since it gets removed/re-added during a suspend.
> > > Would the quirk I submitted not have this compromise?
> >
> > Okay I wasn't sure that using the MMC card as root filesystem
> > is even possible on this product. If that's a potential use case,
> > it needs a separate fix. I'll come up with a proposal for that one
> > as well.
>
> Here's my proposal for allowing root on an MMC card.
>
> Both this and the other patch I just sent (or something like it)
> need to be submitted upstream. The other one is necessary so others
> don't see a lockup when disconnecting e.g. a Thunderbolt-attached
> card reader during system sleep.
>
> But either one of the patches should make the issue go away on the
> MSI Claw, so each patch needs to be tested by itself, without applying
> the other one as well. Thanks!
>
> -- >8 --
This also works independently of the previous fix.
Tested-by: Derek J. Clark <derekjohn.clark@xxxxxxxxx>
- Derek
> diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
> index b301c6c8df75..9da7ae0b2437 100644
> --- a/arch/x86/pci/fixup.c
> +++ b/arch/x86/pci/fixup.c
> @@ -1080,4 +1080,20 @@ static void quirk_tuxeo_rp_d3(struct pci_dev *pdev)
> }
> }
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x1502, quirk_tuxeo_rp_d3);
> +
> +/*
> + * MSI Claw A8 firmware initializes the onboard Realtek RTS525A cardreader
> + * with an MSI-specific Subsystem Vendor and Device ID on boot, but neglects
> + * to re-initialize it on resume. Avoid hot-removal of the cardreader due to
> + * the spurious ID change.
> + */
> +static void quirk_msi_claw_cardreader(struct pci_dev *pdev)
> +{
> + if (pdev->subsystem_vendor == 0x1462 &&
> + pdev->subsystem_device == 0x14af) {
> + pdev->subsystem_vendor = pdev->vendor;
> + pdev->subsystem_device = pdev->device;
> + }
> +}
> +DECLARE_PCI_FIXUP_SUSPEND_LATE(PCI_VENDOR_ID_REALTEK, 0x525a, quirk_msi_claw_cardreader);
> #endif /* CONFIG_SUSPEND */