[PATCH v10 0/6] mmc: core: Keep the card powered across suspend when firmware needs it live

From: Ulf Hansson

Date: Tue Oct 27 2026 - 10:51:40 EST


Background: on brcmstb boards with a Kioxia 016G01 eMMC, firmware accesses the
card directly during resume from Suspend-to-DRAM, before the kernel's own
resume path runs, in order to load boot code using hard wired logic that is not
field updatable. The card needs to stay powered and responsive for that access
to succeed, and since it is never power-cycled, it also needs to be reset
before the kernel reuses it after resume.

Changes in v10:
- To help out with the implementation I offered my help to try to move
this forward.
- The DT patches are good to go so I included them from the previous
versions.
- Patch 3 to 6 are new, but based on the work done by Kamal Dasu.
- This is completely untested from my side, please help to test it.

Kind regards
Ulf Hansson


Kamal Dasu (2):
dt-bindings: mmc: Extend keep-power-in-suspend beyond SDIO
dt-bindings: mmc: Add reset-card-at-resume property

Ulf Hansson (4):
mmc: core: Add option to keep an eMMC powered on at system suspend
mmc: core: Split sdio_set_host_pm_flags()
mmc: core: Move reset functions for eMMC
mmc: core: Add support for resetting an eMMC at system resume

.../bindings/mmc/mmc-controller-common.yaml | 10 +-
drivers/mmc/core/core.c | 9 ++
drivers/mmc/core/core.h | 1 +
drivers/mmc/core/host.c | 10 ++
drivers/mmc/core/mmc.c | 95 ++++++++++++-------
drivers/mmc/core/sdio_io.c | 7 +-
include/linux/mmc/host.h | 1 +
7 files changed, 92 insertions(+), 41 deletions(-)

--
2.43.0