Hi,
On 14-04-18 13:25, Quentin Schulz wrote:
Hi Ulf and Hans,
On Fri, Apr 06, 2018 at 10:41:10AM +0200, Hans de Goede wrote:
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?
I applied your patches on top of next-20180406.
I may need some help to get the ESP8089 driver to work. Note that I'm
very new to MMC and SDIO, just so you know (and so you can adapt your
answer).
It's filling my kernel log buffer with a lot of these[1]. I've basically
replaced Hans's mmc_force_detect_change() by your mmc_sw_reset() in
esp_sdio_probe() of the ESP8089 driver and that's it. Here is my old
patch series for ESP8089[2].
Previously, after my mmc_force_detect_change() the driver would
see a disconnect/remove and then a new connect/probe, this will
no longer happen, now after the mmc_sw_reset() you should let
probe continue at there point where previously the second probe
call would start.
I can't say if it's an error in your patch series or me using it the
wrong way.
Well if you just replaced my mmc_force_detect_change() with
mmc_sw_reset() that is not enough, see above. After that it might
very well be that mc_sw_reset() needs some work too...
Regards,
Hans
--
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