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

Nelson Johnson
2026-03-16T21:23:28Z

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.

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(-)

--
2.47.3