diff options
| author | Venkat Gopalakrishnan <venkatg@codeaurora.org> | 2015-06-10 17:20:00 -0700 |
|---|---|---|
| committer | Subhash Jadavani <subhashj@codeaurora.org> | 2016-05-31 15:26:46 -0700 |
| commit | 506b393bf6e69fb7dbad718e18f0d033ef19da8f (patch) | |
| tree | 780180e461e54ab58c655cdbc8481356f01c30dc /drivers/mmc | |
| parent | 57a1c4c67eab157f6f6519b79862a09ead9e3fba (diff) | |
mmc: Add host ops for enhanced strobe
Some hosts may need additional steps to get HS400 functional in
enhanced strobe mode. Add host ops to facilitate that.
Change-Id: I9663830e7ccedf8bf7970d0724a4c7ce212073fd
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
[subhashj@codeaurora.org: fixed trivial merge conflicts]
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Diffstat (limited to 'drivers/mmc')
| -rw-r--r-- | 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 bbac42cbe6aa..f4b6ca033487 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -1245,7 +1245,12 @@ static int mmc_select_hs400(struct mmc_card *card) goto out_err; } - if ((host->caps2 & MMC_CAP2_HS400_POST_TUNING) && host->ops->execute_tuning) { + if (host->ops->enhanced_strobe) { + mmc_host_clk_hold(host); + err = host->ops->enhanced_strobe(host); + mmc_host_clk_release(host); + } else if ((host->caps2 & MMC_CAP2_HS400_POST_TUNING) && + host->ops->execute_tuning) { mmc_host_clk_hold(host); err = host->ops->execute_tuning(host, MMC_SEND_TUNING_BLOCK_HS200); @@ -1609,7 +1614,7 @@ static int mmc_scale_high(struct mmc_host *host) return err; } - return 0; + return err; } static int mmc_set_clock_bus_speed(struct mmc_card *card, unsigned long freq) |
