Re: [PATCH 0/3] mmc: Lenovo N22 Braswell SD slot fixes

From: Adrian Hunter

Date: Fri Mar 20 2026 - 09:28:04 EST


On 16/03/2026 23:23, Nelson Johnson wrote:
> This series fixes the long-broken SD slot on the Lenovo N22
> (Model 80S6 / MTM 80S60001US) with Intel Celeron N3050 Braswell
> hardware running Debian 13 and Linux 6.19.6.
>
> The regression goes back to kernel 4.14. The Braswell SD controller
> (PCI ID 8086:2296) is exposed by firmware through both PCI
> 0000:00:12.0 and ACPI INT33BB:00 at \_SB_.PCI0.SDHB.
>
> On this machine the newer runtime PM and card-detect handling no
> longer works reliably, and the ACPI path permanently defers because
> its dependency never becomes available. That leaves the slot unusable
> unless the controller is forced back onto the working PCI path with
> machine-specific quirks.
>
> This series does three things, all scoped to the Lenovo N22 DMI
> match:
>
> 1. Disable the aggressive runtime PM/card-detect wake path for the
> Braswell PCI SD controller.
> 2. Bypass the broken firmware card-detect GPIO path and use polling
> for card insertion detection.
> 3. Prevent the competing ACPI INT33BB:00 node from binding on this
> machine so the PCI SDHCI driver can own the controller.

These changes seem more like they work around the problem rather
than fix the problem, but you say it worked OK in v4.14? I see also
mention of v4.9 in patch 1? When it was working, was it using the ACPI
driver or the PCI driver?

In patch 3, you say the SDHCI APCI driver repeatedly defers. Is that
because it is waiting for the GPIO driver for the Card Detect GPIO?

Note Lenovo N22 seems to date back to 2017. Is it really worth
spending time on something that old, especially as no one seems
to have worried about it before?


>
> With these changes applied, the SD slot binds through sdhci-pci and
> detects and mounts SD cards again on the Lenovo N22.
>
> Tested on:
> Lenovo N22 Model 80S6 / MTM 80S60001US
> Intel Celeron N3050 (Braswell)
> Debian 13
> Linux 6.19.6
>
> Nelson Johnson (3):
> mmc: sdhci-pci: disable aggressive runtime PM for Braswell SD on
> Lenovo N22
> mmc: sdhci-pci: force polling card detect for Braswell SD on Lenovo
> N22
> mmc: sdhci-acpi: exclude INT33BB:00 from ACPI binding on Lenovo N22
>
> drivers/mmc/host/sdhci-acpi.c | 10 ++++++++++
> drivers/mmc/host/sdhci-pci-core.c | 33 ++++++++++++++++++++++++++-----
> 2 files changed, 38 insertions(+), 5 deletions(-)
>