• Ulf Hansson's avatar
    mmc: core: Invoke mmc_pwrseq_post_power_on() prior MMC_POWER_ON state · 4febb7e2
    Ulf Hansson authored
    Host drivers have different ways to sends their "init stream" to the
    card. Some need to do it as part of a request, some do it from the
    ->set_ios() callback in the MMC_POWER_ON state and some don't send an
    "init stream" at all.
    To be able to use the reset GPIOs from the simple MMC power sequence
    provider, the card need to be powered and the "init stream" must not
    have been sent.
    To cope with these requirements, invoke mmc_pwrseq_post_power_on()
    prior we change the state to MMC_POWER_ON in mmc_power_up().
    Host drivers shall perform power up operations in the MMC_POWER_UP
    state. Unfortunate three hosts (au1xmmc, cb710-mmc and toshsd) don't
    conform to this expectation. Instead those ignore the MMC_POWER_UP
    state and delays their power up operations to the MMC_POWER_ON state.
    Those hosts needs to change their behavior to enable proper support for
    the simple MMC power sequence provider.
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Reviewed-by: default avatarJavier Martinez Canillas <javier.martinez@collabora.co.uk>
    Tested-by: default avatarJavier Martinez Canillas <javier.martinez@collabora.co.uk>
core.c 65.9 KB