Loading drivers/mmc/host/sdhci-msm.c +18 −1 Original line number Diff line number Diff line Loading @@ -2706,7 +2706,24 @@ out: return rc; } static void sdhci_msm_disable_controller_clock(struct sdhci_host *host) { struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct sdhci_msm_host *msm_host = pltfm_host->priv; if (atomic_read(&msm_host->controller_clock)) { if (!IS_ERR(msm_host->clk)) clk_disable_unprepare(msm_host->clk); if (!IS_ERR(msm_host->pclk)) clk_disable_unprepare(msm_host->pclk); if (!IS_ERR(msm_host->ice_clk)) clk_disable_unprepare(msm_host->ice_clk); sdhci_msm_bus_voting(host, 0); atomic_set(&msm_host->controller_clock, 0); pr_debug("%s: %s: disabled controller clock\n", mmc_hostname(host->mmc), __func__); } } static int sdhci_msm_prepare_clocks(struct sdhci_host *host, bool enable) { Loading Loading @@ -4578,7 +4595,7 @@ static int sdhci_msm_suspend(struct device *dev) } ret = sdhci_msm_runtime_suspend(dev); out: sdhci_msm_disable_controller_clock(host); if (host->mmc->card && mmc_card_sdio(host->mmc->card)) { sdio_cfg = sdhci_msm_cfg_sdio_wakeup(host, true); if (sdio_cfg) Loading Loading
drivers/mmc/host/sdhci-msm.c +18 −1 Original line number Diff line number Diff line Loading @@ -2706,7 +2706,24 @@ out: return rc; } static void sdhci_msm_disable_controller_clock(struct sdhci_host *host) { struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct sdhci_msm_host *msm_host = pltfm_host->priv; if (atomic_read(&msm_host->controller_clock)) { if (!IS_ERR(msm_host->clk)) clk_disable_unprepare(msm_host->clk); if (!IS_ERR(msm_host->pclk)) clk_disable_unprepare(msm_host->pclk); if (!IS_ERR(msm_host->ice_clk)) clk_disable_unprepare(msm_host->ice_clk); sdhci_msm_bus_voting(host, 0); atomic_set(&msm_host->controller_clock, 0); pr_debug("%s: %s: disabled controller clock\n", mmc_hostname(host->mmc), __func__); } } static int sdhci_msm_prepare_clocks(struct sdhci_host *host, bool enable) { Loading Loading @@ -4578,7 +4595,7 @@ static int sdhci_msm_suspend(struct device *dev) } ret = sdhci_msm_runtime_suspend(dev); out: sdhci_msm_disable_controller_clock(host); if (host->mmc->card && mmc_card_sdio(host->mmc->card)) { sdio_cfg = sdhci_msm_cfg_sdio_wakeup(host, true); if (sdio_cfg) Loading