lkml.org 
[lkml]   [2019]   [Mar]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 052/230] mmc: spi: Fix card detection during probe
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Jonathan Neuschäfer <j.neuschaefer@gmx.net>

    commit c9bd505dbd9d3dc80c496f88eafe70affdcf1ba6 upstream.

    When using the mmc_spi driver with a card-detect pin, I noticed that the
    card was not detected immediately after probe, but only after it was
    unplugged and plugged back in (and the CD IRQ fired).

    The call tree looks something like this:

    mmc_spi_probe
    mmc_add_host
    mmc_start_host
    _mmc_detect_change
    mmc_schedule_delayed_work(&host->detect, 0)
    mmc_rescan
    host->bus_ops->detect(host)
    mmc_detect
    _mmc_detect_card_removed
    host->ops->get_cd(host)
    mmc_gpio_get_cd -> -ENOSYS (ctx->cd_gpio not set)
    mmc_gpiod_request_cd
    ctx->cd_gpio = desc

    To fix this issue, call mmc_detect_change after the card-detect GPIO/IRQ
    is registered.

    Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/mmc/host/mmc_spi.c | 1 +
    1 file changed, 1 insertion(+)

    --- a/drivers/mmc/host/mmc_spi.c
    +++ b/drivers/mmc/host/mmc_spi.c
    @@ -1451,6 +1451,7 @@ static int mmc_spi_probe(struct spi_devi
    if (status != 0)
    goto fail_add_host;
    }
    + mmc_detect_change(mmc, 0);

    dev_info(&spi->dev, "SD/MMC host %s%s%s%s%s\n",
    dev_name(&mmc->class_dev),

    \
     
     \ /
      Last update: 2019-03-22 14:14    [W:5.330 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site