Hi Ulf, On 05-04-18 22:19, Ulf Hansson wrote:
It's rather common that SDIO func devices becomes loaded with a new firmware as a part of the SDIO func driver being probed. However, in some special scenarios the SDIO func device needs a SW reset, as to start running the new firmware. More importantly, a full power cycle doesn't work, as that would reset also the firmware, thus the existing mmc_hw_reset() API can't be used to deal with these scenarios. Therefore this series suggest to add a new API, mmc_sw_reset(), which resets and re-initialize the SDIO card. A couple of the patches in the series are mostly re-factorings making generic improvements to the related code. For more background to this series, feel free to digest the discussions from the submitted patch: https://patchwork.kernel.org/patch/9857175/ It should be noted, at this point this series has only be compile tested. Help with tests and deployment of using the new API is greatly appreciated.
Thank you for this series, I've taken a quick look and it looks good, but the proof is in the pudding. Quentin can you test this on an ARM board with an ESP8089 sometime the coming week? Regards, Hans
Kind regards Ulf Hansson Ulf Hansson (5): mmc: core: Re-factor some code for SDIO re-initialization mmc: core: Rename ->reset() bus ops to ->hw_reset() mmc: core: Export a function mmc_sw_reset() to allow soft reset of cards mmc: core: Share internal function to set initial signal voltage mmc: core: Implement ->sw_reset bus ops for SDIO drivers/mmc/core/core.c | 49 +++++++++++++++++++++++++++++++++--------- drivers/mmc/core/core.h | 4 +++- drivers/mmc/core/mmc.c | 4 ++-- drivers/mmc/core/sd.c | 4 ++-- drivers/mmc/core/sdio.c | 56 +++++++++++++++++++++++++++++------------------- include/linux/mmc/core.h | 1 + 6 files changed, 81 insertions(+), 37 deletions(-)
-- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html