diff options
Diffstat (limited to 'drivers/mmc/host/sdhci.c')
-rw-r--r-- | drivers/mmc/host/sdhci.c | 12 |
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; |