Balaji, Tried this patch along with disabling the eMMC VCC supply in suspend and it works !!! Without this patch, if I disabled the VCC supply then after resume I/O errors are seen. This change also complies with eMMC spec so am ok with this change. Regards, Subhash -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. > -----Original Message----- > From: linux-mmc-owner@xxxxxxxxxxxxxxx [mailto:linux-mmc- > owner@xxxxxxxxxxxxxxx] On Behalf Of Balaji T K > Sent: Wednesday, July 13, 2011 8:06 PM > To: linux-mmc@xxxxxxxxxxxxxxx > Cc: Balaji T K > Subject: [RFC/RFT] MMC: CORE: eMMC in Sleep mode before suspend > > Put MMC to sleep if it supports SLEEP/AWAKE (CMD5) > in the mmc suspend to minimize power consumption. > > Signed-off-by: Balaji T K <balajitk@xxxxxx> > --- > drivers/mmc/core/mmc.c | 8 ++++++-- > 1 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c > index afabdc3..e8dfcde 100644 > --- a/drivers/mmc/core/mmc.c > +++ b/drivers/mmc/core/mmc.c > @@ -900,16 +900,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; > } > > /* > -- > 1.7.0.4 > > -- > 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 -- 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