summaryrefslogtreecommitdiff
path: root/drivers/mmc/host/sdhci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc/host/sdhci.c')
-rw-r--r--drivers/mmc/host/sdhci.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 6c6045879022..495586924d60 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1849,7 +1849,6 @@ static void sdhci_enable_preset_value(struct mmc_host *mmc, bool enable)
int sdhci_enable(struct mmc_host *mmc)
{
struct sdhci_host *host = mmc_priv(mmc);
- u16 clk;
if (!mmc->card)
return 0;
@@ -1860,9 +1859,8 @@ int sdhci_enable(struct mmc_host *mmc)
host->ops->set_clock(host, mmc->ios.clock);
sdhci_set_clock(host, mmc->ios.clock);
} else {
- clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL);
- clk |= SDHCI_CLOCK_CARD_EN;
- sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
+ if (host->ops->set_card_clock)
+ host->ops->set_card_clock(host, mmc->ios.clock);
}
}
@@ -1872,7 +1870,6 @@ int sdhci_enable(struct mmc_host *mmc)
int sdhci_disable(struct mmc_host *mmc, int lazy)
{
struct sdhci_host *host = mmc_priv(mmc);
- u16 clk;
if (!mmc->card)
return 0;
@@ -1883,9 +1880,8 @@ int sdhci_disable(struct mmc_host *mmc, int lazy)
if (host->ops->set_clock)
host->ops->set_clock(host, 0);
} else {
- clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL);
- clk &= ~SDHCI_CLOCK_CARD_EN;
- sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
+ if (host->ops->set_card_clock)
+ host->ops->set_card_clock(host, 0);
}
return 0;