static int sh_mmcif_clk_update(struct sh_mmcif_host *host)
 {
-       int ret = clk_enable(host->hclk);
+       int ret = clk_prepare_enable(host->hclk);
 
        if (!ret) {
                host->clk = clk_get_rate(host->hclk);
                }
                if (host->power) {
                        pm_runtime_put_sync(&host->pd->dev);
-                       clk_disable(host->hclk);
+                       clk_disable_unprepare(host->hclk);
                        host->power = false;
                        if (ios->power_mode == MMC_POWER_OFF)
                                sh_mmcif_set_power(host, ios);
 
        mutex_init(&host->thread_lock);
 
-       clk_disable(host->hclk);
+       clk_disable_unprepare(host->hclk);
        ret = mmc_add_host(mmc);
        if (ret < 0)
                goto emmcaddh;
 ereqirq0:
        pm_runtime_suspend(&pdev->dev);
 eresume:
-       clk_disable(host->hclk);
+       clk_disable_unprepare(host->hclk);
 eclkupdate:
        clk_put(host->hclk);
 eclkget:
        int irq[2];
 
        host->dying = true;
-       clk_enable(host->hclk);
+       clk_prepare_enable(host->hclk);
        pm_runtime_get_sync(&pdev->dev);
 
        dev_pm_qos_hide_latency_limit(&pdev->dev);
        if (irq[1] >= 0)
                free_irq(irq[1], host);
 
-       clk_disable(host->hclk);
+       clk_disable_unprepare(host->hclk);
        mmc_free_host(host->mmc);
        pm_runtime_put_sync(&pdev->dev);
        pm_runtime_disable(&pdev->dev);