From: Anton Vorontsov <avoront...@ru.mvista.com> Linear divisor's values in a register start at 0 (zero means "divide by 1"). Before this patch the code didn't account that fact, so SD cards were running underclocked.
Signed-off-by: Anton Vorontsov <avoront...@ru.mvista.com> Cc: Pierre Ossman <pie...@ossman.eu> Cc: Kumar Gala <ga...@kernel.crashing.org> Cc: David Vrabel <david.vra...@csr.com> Cc: Ben Dooks <b...@fluff.org> Cc: Sascha Hauer <s.ha...@pengutronix.de> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: Andrew Morton <a...@linux-foundation.org> --- drivers/mmc/host/sdhci-of.c | 1 + 1 file changed, 1 insertion(+) diff -puN drivers/mmc/host/sdhci-of.c~sdhci-of-fix-sd-clock-calculation drivers/mmc/host/sdhci-of.c --- a/drivers/mmc/host/sdhci-of.c~sdhci-of-fix-sd-clock-calculation +++ a/drivers/mmc/host/sdhci-of.c @@ -136,6 +136,7 @@ static void esdhc_set_clock(struct sdhci } pre_div >>= 1; + div--; setbits32(host->ioaddr + ESDHC_SYSTEM_CONTROL, ESDHC_CLOCK_IPGEN | ESDHC_CLOCK_HCKEN | ESDHC_CLOCK_PEREN | _ -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html