|
@@ -296,9 +296,12 @@ static void sdhci_cmu_set_clock(struct sdhci_host *host, unsigned int clock)
|
|
unsigned long timeout;
|
|
unsigned long timeout;
|
|
u16 clk = 0;
|
|
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;
|
|
return;
|
|
|
|
+ }
|
|
|
|
|
|
sdhci_s3c_set_clock(host, clock);
|
|
sdhci_s3c_set_clock(host, clock);
|
|
|
|
|