On Sun, Feb 10, 2019 at 6:31 PM Jonathan Neuschäfer <j.neuschaefer@xxxxxxx> wrote: > 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@xxxxxxx> Seems correct! Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Yours, Linus Walleij