• Doug Anderson's avatar
    mmc: dw_mmc: don't queue up a card detect at slot startup · 369ac861
    Doug Anderson authored
    The MMC subsystem handles looking for a card at probe time. Queuing up our
    own can race with the rest of the MMC subsystem and cause problems if we
    get unlucky with timing. Just remove driver own detection triggering.  While
    progressing the request from 'mmc_rescan', if 'dw_mci_work_routine_card'
    routine is activated, it will cancel the current request. The problem case
    is that 'mmc_rescan' is prior to 'dw_mci_work_routine_card' from host own.
    Specifically, the following message shows the detection problem in driver's
    probing. It would get an err -123 (-ENOMEDIUM) during probe.
    
    [    4.216595] dwmmc_exynos 12210000.dwmmc1: Using internal DMA controller.
    [    4.395935] dwmmc_exynos 12210000.dwmmc1: Version ID is 250a
    [    4.401948] dwmmc_exynos 12210000.dwmmc1: DW MMC controller at irq 108, 64 bit host data width, 64 deep fifo
    [    4.424430] dwmmc_exynos 12210000.dwmmc1: sdr0 mode (irq=108, width=0)
    [    4.453975] dwmmc_exynos 12210000.dwmmc1: sdr0 mode (irq=108, width=0)
    [    4.459592] mmc_host mmc1: Bus speed (slot 0) = 100000000Hz (slot req 400000Hz, actual 400000HZ div = 125)
    [    4.484258] dwmmc_exynos 12210000.dwmmc1: 1 slots initialized
    [    4.485406] dwmmc_exynos 12210000.dwmmc1: sdr0 mode (irq=108, width=0)
    [    4.487606] dwmmc_exynos 12210000.dwmmc1: sdr0 mode (irq=108, width=0)
    [    4.489794] dwmmc_exynos 12210000.dwmmc1: sdr0 mode (irq=108, width=0)
    [    4.509757] mmc1: error -123 whilst initialising SDIO card
    Signed-off-by: default avatarDoug Anderson <dianders@chromium.org>
    Acked-by: default avatarSeungwon Jeon <tgih.jun@samsung.com>
    Signed-off-by: default avatarChris Ball <cjb@laptop.org>
    369ac861
dw_mmc.c 61.7 KB