diff options
| -rw-r--r-- | drivers/mmc/host/sdhci-s3c.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c index a2828222709c..c6d2dd7317c1 100644 --- a/drivers/mmc/host/sdhci-s3c.c +++ b/drivers/mmc/host/sdhci-s3c.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | * published by the Free Software Foundation. | 12 | * published by the Free Software Foundation. |
| 13 | */ | 13 | */ |
| 14 | 14 | ||
| 15 | #include <linux/spinlock.h> | ||
| 15 | #include <linux/delay.h> | 16 | #include <linux/delay.h> |
| 16 | #include <linux/dma-mapping.h> | 17 | #include <linux/dma-mapping.h> |
| 17 | #include <linux/platform_device.h> | 18 | #include <linux/platform_device.h> |
| @@ -312,7 +313,14 @@ static void sdhci_cmu_set_clock(struct sdhci_host *host, unsigned int clock) | |||
| 312 | 313 | ||
| 313 | sdhci_s3c_set_clock(host, clock); | 314 | sdhci_s3c_set_clock(host, clock); |
| 314 | 315 | ||
| 316 | /* Reset SD Clock Enable */ | ||
| 317 | clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL); | ||
| 318 | clk &= ~SDHCI_CLOCK_CARD_EN; | ||
| 319 | sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); | ||
| 320 | |||
| 321 | spin_unlock_irq(&host->lock); | ||
| 315 | ret = clk_set_rate(ourhost->clk_bus[ourhost->cur_clk], clock); | 322 | ret = clk_set_rate(ourhost->clk_bus[ourhost->cur_clk], clock); |
| 323 | spin_lock_irq(&host->lock); | ||
| 316 | if (ret != 0) { | 324 | if (ret != 0) { |
| 317 | dev_err(dev, "%s: failed to set clock rate %uHz\n", | 325 | dev_err(dev, "%s: failed to set clock rate %uHz\n", |
| 318 | mmc_hostname(host->mmc), clock); | 326 | mmc_hostname(host->mmc), clock); |
