diff options
| author | Krishna Konda <kkonda@codeaurora.org> | 2015-06-29 19:20:05 -0700 |
|---|---|---|
| committer | Subhash Jadavani <subhashj@codeaurora.org> | 2016-05-31 15:26:55 -0700 |
| commit | 62c8dce6e1b42fe6ee356550a3092ca2db90ec22 (patch) | |
| tree | bda69d7554abc5abcf0bcd1e50f4bb0b70440d97 /include/linux | |
| parent | b6c1c166809f7141efb13c2805027f189a75597a (diff) | |
mmc: core: Update PON based on the system state
As per eMMC specification, the PON (Power Off Notification)
must be sent by host to the card before turning off the power.
This will allow card to prepare itself for the power off and
may even reduce the initialization of eMMC upon next boot-up.
Send long PON during system power off and send short PON during
system reboot to reduce the reboot latency.
Change-Id: If4188b8b80aaa0e6c4e00e1807aa9589d5e7efdb
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: Krishna Konda <kkonda@codeaurora.org>
[subhashj@codeaurora.org: fixed trivial merge conflicts]
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mmc/card.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 2430ba0e1182..c8faf8b146ee 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -324,6 +324,11 @@ struct mmc_bkops_info { bool needs_manual; }; +enum mmc_pon_type { + MMC_LONG_PON = 1, + MMC_SHRT_PON, +}; + /* * MMC device */ @@ -411,7 +416,7 @@ struct mmc_card { struct mmc_wr_pack_stats wr_pack_stats; /* packed commands stats*/ struct notifier_block reboot_notify; - bool issue_long_pon; + enum mmc_pon_type pon_type; u8 *cached_ext_csd; bool cmdq_init; struct mmc_bkops_info bkops; @@ -691,6 +696,6 @@ extern void mmc_fixup_device(struct mmc_card *card, extern struct mmc_wr_pack_stats *mmc_blk_get_packed_statistics( struct mmc_card *card); extern void mmc_blk_init_packed_statistics(struct mmc_card *card); -extern int mmc_send_long_pon(struct mmc_card *card); +extern int mmc_send_pon(struct mmc_card *card); extern void mmc_blk_cmdq_req_done(struct mmc_request *mrq); #endif /* LINUX_MMC_CARD_H */ |
