[PATCH] mmc: mmci: Gate the clock when freq is 0
Ulf Hansson
ulf.hansson at stericsson.com
Wed Dec 12 10:50:21 EST 2012
From: Johan Rudholm <johan.rudholm at stericsson.com>
In the ST Micro variant, the MMCI_CLOCK register should not be used to
gate the clock. Use MMCI_POWER to do this.
Signed-off-by: Johan Rudholm <johan.rudholm at stericsson.com>
Signed-off-by: Ulf Hansson <ulf.hansson at linaro.org>
---
drivers/mmc/host/mmci.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index edc3e9b..bf07823 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -1147,6 +1147,15 @@ static void mmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
}
}
+ /*
+ * If clock = 0 and the block needs a certain value in the clreg
+ * to function, we need to gate the clock by removing MCI_PWR_ON.
+ * This is a special case for ST Micro variants, since the power
+ * register in the ARM legacy case is used for powering the cards.
+ */
+ if (!ios->clock && variant->clkreg)
+ pwr &= ~MCI_PWR_ON;
+
spin_lock_irqsave(&host->lock, flags);
mmci_set_clkreg(host, ios->clock);
--
1.7.10
More information about the linux-arm-kernel
mailing list