• Ulf Hansson's avatar
    mmc: core: Don't power off the card when starting the host · c2c24819
    Ulf Hansson authored
    The MMC_CAP2_NO_PRESCAN_POWERUP was invented to avoid running the power up
    sequence, mmc_power_up(), during ->probe() of the mmc host driver, but
    instead defer this to the mmc detect work. This is especially useful for
    those hosts that suffers from a long initialization time, as this time
    would otherwise add up to the total boot time.
    
    However, due to the introduction of runtime PM of mmc host devices in the
    mmc core, this behaviour changed a bit. More precisely, it caused the mmc
    core to runtime resume the host device during ->probe() of the host driver.
    In cases like the rtsx_usb_sdmmc, runtime resuming the device may be costly
    and thus affecting the total boot time.
    
    To improve this behaviour when using MMC_CAP2_NO_PRESCAN_POWERUP, let's
    postpone also calling mmc_power_off() when starting the host. This change
    allows the mmc core to avoid runtime resuming the device, as it don't need
    to claim the host for that execution path.
    
    Cc: Ritesh Raj Sarraf <rrs@researchut.com>
    Cc: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    c2c24819
core.c 76.1 KB