flo: mmc: bypass PON and cmd5 for specific eMMC

when recieving PON, some eMMC tend to program spare block with
init data for next power cycle. If eMMC recieved PON frequently
but not actually powered off. blocks being programed became
really dirty and caused performance decline.

Sending cmd5 frequently could also be stress to NAND block for
some eMMC. Hence bypass cmd5 to extend eMMC life cycle.

Change-Id: I2cee3a048da8d4e814befd0192675d3f58cd3f90
Signed-off-by: hsuan-chih_chen <hsuan-chih_chen@asus.com>
This commit is contained in:
hsuan-chih_chen
2013-04-17 19:05:55 +08:00
committed by Android Partner Code Review
parent aaa46b979e
commit df3901e149

View File

@@ -1456,9 +1456,9 @@ static int mmc_suspend(struct mmc_host *host)
if (err)
goto out;
if (mmc_can_poweroff_notify(host->card))
if (mmc_can_poweroff_notify(host->card) && host->card->cid.manfid != 0x90)
err = mmc_poweroff_notify(host->card, EXT_CSD_POWER_OFF_SHORT);
else if (mmc_card_can_sleep(host))
else if (mmc_card_can_sleep(host) && host->card->cid.manfid != 0x90)
err = mmc_card_sleep(host);
else if (!mmc_host_is_spi(host))
mmc_deselect_cards(host);