On 14 April 2018 at 13:25, Quentin Schulz <quentin.schulz@xxxxxxxxxxx> 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]. > > I can't say if it's an error in your patch series or me using it the > wrong way. > > Could you help me debug this so that we can make the "weird" SDIO > devices such as the ESP8089 work in the kernel :)? > > I'll try to mount my rootfs from something else than an initramfs so > that it may solve my problem of dmesg not showing the whole log. > > [1] http://code.bulix.org/eechlb-318686 Unless I am misstaken, it looks like the messages comes from a WARN_ON(!host->claimed); in mmc_wait_for_cmd(). Did you call sdio_claim_host() before calling mmc_sw_reset()? And then of course you need to release the host when you are ready executing the required operations, sdio_release_host(). > [2] https://lkml.org/lkml/2017/7/21/386 > > Let me know how I can be helpful, > Thanks, > Quentin Kind regards Uffe -- 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