mmc: sdhci-s3c: fix the wrong register value, when clock is disabled
authorJaehoon Chung <jh80.chung@samsung.com>
Fri, 2 Aug 2013 14:08:58 +0000 (23:08 +0900)
committerChris Ball <cjb@laptop.org>
Fri, 30 Aug 2013 01:17:15 +0000 (21:17 -0400)
When use the QUIRK_NONSTANDARD_CLOCK, then never set to 0 at clock control
register.  This patch fixes this problem.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/sdhci-s3c.c

index 926aaf6..1572b6a 100644 (file)
@@ -296,9 +296,12 @@ static void sdhci_cmu_set_clock(struct sdhci_host *host, unsigned int clock)
        unsigned long timeout;
        u16 clk = 0;
 
-       /* don't bother if the clock is going off */
-       if (clock == 0)
+       /* If the clock is going off, set to 0 at clock control register */
+       if (clock == 0) {
+               sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL);
+               host->clock = clock;
                return;
+       }
 
        sdhci_s3c_set_clock(host, clock);