mmc: sdhci-iproc: Actually enable the clock
authorStefan Wahren <stefan.wahren@i2se.com>
Sun, 17 Jan 2016 14:59:01 +0000 (14:59 +0000)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 29 Feb 2016 10:02:49 +0000 (11:02 +0100)
The RPi firmware-based clocks driver can actually disable
unused clocks, so when switching to use it we ended up losing
our MMC clock once all devices were probed.

This patch adopts the changes from 1e5a0a9a58e2 ("mmc: sdhci-bcm2835:
Actually enable the clock") to sdhci-iproc.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Acked-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-iproc.c

index e22060a80dbf60aaed440f7b77c237e369a88bda..55bc348ccae049820694adfa16b7fedfa254d267 100644 (file)
@@ -207,6 +207,11 @@ static int sdhci_iproc_probe(struct platform_device *pdev)
                ret = PTR_ERR(pltfm_host->clk);
                goto err;
        }
+       ret = clk_prepare_enable(pltfm_host->clk);
+       if (ret) {
+               dev_err(&pdev->dev, "failed to enable host clk\n");
+               goto err;
+       }
 
        if (iproc_host->data->pdata->quirks & SDHCI_QUIRK_MISSING_CAPS) {
                host->caps = iproc_host->data->caps;
@@ -215,10 +220,12 @@ static int sdhci_iproc_probe(struct platform_device *pdev)
 
        ret = sdhci_add_host(host);
        if (ret)
-               goto err;
+               goto err_clk;
 
        return 0;
 
+err_clk:
+       clk_disable_unprepare(pltfm_host->clk);
 err:
        sdhci_pltfm_free(pdev);
        return ret;