• Ulf Hansson's avatar
    mmc: core: Don't do eMMC HW reset when resuming the eMMC card · 52c8212d
    Ulf Hansson authored
    In case if a pwrseq-emmc has been bound to the host, a call to
    mmc_power_up() triggers an eMMC HW reset via the pwrseq_emmc's
    ->post_power_on() callback. This isn't really what we want, as
    mmc_power_up() is called each time when resuming the card.
    
    As a matter of fact, the current approach may also violate the eMMC spec,
    as the involved delays managed in pwrseq_emmc assumes both VCC and VCCQ has
    been turned on, which isn't the case for VCCQ, unless the regulator is
    always on.
    
    Fix this behaviour by aligning to the same procedure used when the mmc host
    implements the ->hw_reset() callback and has the MMC_CAP_HW_RESET flag set.
    In this way the eMMC HW reset is issued at card detection scan, to cope
    with bogus bootloaders and in the error recovery path via the mmc specific
    bus_ops->reset() callback.
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Tested-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
    52c8212d
pwrseq_emmc.c 2.95 KB