Re: [PATCH v2] mmc: core: eMMC in Sleep mode before suspend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Balaji,

> Put MMC to sleep if it supports SLEEP/AWAKE (CMD5)
> in the mmc suspend so that Vcc (NAND core) can be cut
> to minimize power consumption.
> eMMC put into SLEEP can respond to CMD0 or H/W reset or CMD5.
> Current implemention on resume from suspend relies on CMD0 in
> mmc_init_card to get out of SLEEP mode.
>
> Signed-off-by: Balaji T K <balajitk@xxxxxx>
> Acked-by: Venkatraman S <svenkatr@xxxxxx>
> ---
>  drivers/mmc/core/mmc.c |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
> index 5700b1c..f73fcee 100644
> --- a/drivers/mmc/core/mmc.c
> +++ b/drivers/mmc/core/mmc.c
> @@ -553,6 +553,7 @@ static int mmc_init_card(struct mmc_host *host, u32
> ocr,
>  	 * need to tell some cards to go back to the idle
>  	 * state.  We wait 1ms to give cards time to
>  	 * respond.
> +	 * mmc_go_idle is needed for eMMC that are asleep
>  	 */
>  	mmc_go_idle(host);
>
> @@ -900,16 +901,20 @@ static void mmc_detect(struct mmc_host *host)
>   */
>  static int mmc_suspend(struct mmc_host *host)
>  {
> +	int err = 0;
> +
>  	BUG_ON(!host);
>  	BUG_ON(!host->card);
>
>  	mmc_claim_host(host);
> -	if (!mmc_host_is_spi(host))
> +	if (mmc_card_can_sleep(host))
> +		err = mmc_card_sleep(host);
> +	else if (!mmc_host_is_spi(host))
>  		mmc_deselect_cards(host);
>  	host->card->state &= ~MMC_STATE_HIGHSPEED;
>  	mmc_release_host(host);
>
> -	return 0;
> +	return err;
>  }

Looks good to me:
Reviewed-by: Subhash Jadavani <subhashj@xxxxxxxxxxxxxx>

Thanks,
Subhash

>
>  /*
> --
> 1.7.0.4
>
>


-- 
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux