It has turned out that it's not a good idea to try to power cycle and to re-initialize the SDIO card, as currently done through mmc_hw_reset(). This because there may be multiple SDIO funcs attached to the same SDIO card and some of the others that didn't execute the call to mmc_hw_reset(), may then simply experience an undefined behaviour. The following two patches in this series attempts to address this problem, by reworking the mmc_hw_reset() behaviour for SDIO. Note that, the code has only compile tested, so any test on HW is greatly appreciated. Kind regards Uffe Ulf Hansson (2): mmc: core: Drop check for mmc_card_is_removable() in mmc_rescan() mmc: core: Re-work HW reset for SDIO cards drivers/mmc/core/core.c | 10 +++------- drivers/mmc/core/core.h | 2 ++ drivers/mmc/core/sdio.c | 11 +++++++++-- 3 files changed, 14 insertions(+), 9 deletions(-) -- 2.17.1