Hi Ulf, On Wed, May 02, 2018 at 11:26:30AM +0200, Ulf Hansson wrote: > On 23 April 2018 at 11:50, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > > 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 > > Quentin, ping! > > Just tell me if there is anything else I can help out with! > Thanks for the ping, I'll have a look tomorrow evening or this week-end. Looks weird to me that using this patch in the core resulted in an unbalanced sdio_claim/release_host() while it was working with Hans's hack. I'll let you know if I'm getting lost :) Thanks, Quentin > Kind regards > Uffe
Attachment:
signature.asc
Description: PGP signature