summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVenkat Gopalakrishnan <venkatg@codeaurora.org>2015-03-02 13:22:40 -0800
committerSubhash Jadavani <subhashj@codeaurora.org>2016-05-31 15:26:15 -0700
commitb8be10334c1dfb5a0048afeda77cb553b585556e (patch)
tree740fae61f97a371ff533686a146658e44b50c015
parentfbd98e0c5c1b0c01d9bfb33959ae75b0cbebfaaf (diff)
mmc: sdhci: Fix setting clock for HS400
The platform specific set_clock must be called even if the clock rates are same but the timing modes are different as there may be some platform specific handling required for different timing modes. Change-Id: Ia7102b29a8979ad88820c60ed5874d4b2dab71a0 Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
-rw-r--r--drivers/mmc/host/sdhci.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 818758b0d89f..995e3ca6890f 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1720,7 +1720,8 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
sdhci_enable_preset_value(host, false);
spin_lock_irqsave(&host->lock, flags);
- if (ios->clock && ios->clock != host->clock) {
+ if (ios->clock &&
+ ((ios->clock != host->clock) || (ios->timing != host->timing))) {
spin_unlock_irqrestore(&host->lock, flags);
host->ops->set_clock(host, ios->clock);
spin_lock_irqsave(&host->lock, flags);