mmc: core: Invent MMC_CAP2_FULL_PWR_CYCLE
MMC_CAP2_FULL_PWR_CYCLE shall be set by host drivers which are able to do a complete power cycle of the card. In the eMMC case that includes both vcc and vccq. This CAP is providing the protocol layer with important information, needed to take optimized decisions during card initialization and in the suspend/resume sequence. MMC_CAP2_POWEROFF_NOTIFY is replaced by MMC_CAP2_FULL_PWR_CYCLE, since it makes sense to use a wider scope for it. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org>
This commit is contained in:
parent
4323567934
commit
53275c2136
|
@ -1484,7 +1484,7 @@ static int _mmc_suspend(struct mmc_host *host, bool is_suspend)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (mmc_can_poweroff_notify(host->card) &&
|
if (mmc_can_poweroff_notify(host->card) &&
|
||||||
((host->caps2 & MMC_CAP2_POWEROFF_NOTIFY) || !is_suspend))
|
((host->caps2 & MMC_CAP2_FULL_PWR_CYCLE) || !is_suspend))
|
||||||
err = mmc_poweroff_notify(host->card, notify_type);
|
err = mmc_poweroff_notify(host->card, notify_type);
|
||||||
else if (mmc_can_sleep(host->card))
|
else if (mmc_can_sleep(host->card))
|
||||||
err = mmc_sleep(host);
|
err = mmc_sleep(host);
|
||||||
|
|
|
@ -264,7 +264,7 @@ struct mmc_host {
|
||||||
|
|
||||||
#define MMC_CAP2_BOOTPART_NOACC (1 << 0) /* Boot partition no access */
|
#define MMC_CAP2_BOOTPART_NOACC (1 << 0) /* Boot partition no access */
|
||||||
#define MMC_CAP2_CACHE_CTRL (1 << 1) /* Allow cache control */
|
#define MMC_CAP2_CACHE_CTRL (1 << 1) /* Allow cache control */
|
||||||
#define MMC_CAP2_POWEROFF_NOTIFY (1 << 2) /* Notify poweroff supported */
|
#define MMC_CAP2_FULL_PWR_CYCLE (1 << 2) /* Can do full power cycle */
|
||||||
#define MMC_CAP2_NO_MULTI_READ (1 << 3) /* Multiblock reads don't work */
|
#define MMC_CAP2_NO_MULTI_READ (1 << 3) /* Multiblock reads don't work */
|
||||||
#define MMC_CAP2_NO_SLEEP_CMD (1 << 4) /* Don't allow sleep command */
|
#define MMC_CAP2_NO_SLEEP_CMD (1 << 4) /* Don't allow sleep command */
|
||||||
#define MMC_CAP2_HS200_1_8V_SDR (1 << 5) /* can support */
|
#define MMC_CAP2_HS200_1_8V_SDR (1 << 5) /* can support */
|
||||||
|
|
Loading…
Reference in New Issue