]> git.karo-electronics.de Git - linux-beck.git/commitdiff
mmc: sdhci-s3c: Use devm_clk_get()
authorJingoo Han <jg1.han@samsung.com>
Tue, 12 Feb 2013 03:24:39 +0000 (12:24 +0900)
committerChris Ball <cjb@laptop.org>
Fri, 22 Mar 2013 15:52:50 +0000 (11:52 -0400)
Use devm_clk_get() rather than clk_get() to make cleanup paths
more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/sdhci-s3c.c

index 7363efe72287482def2cf32f4e4e515788c33d80..128b65030a0c3a727615dedc7bc1d3c586460c61 100644 (file)
@@ -608,7 +608,7 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, host);
 
-       sc->clk_io = clk_get(dev, "hsmmc");
+       sc->clk_io = devm_clk_get(dev, "hsmmc");
        if (IS_ERR(sc->clk_io)) {
                dev_err(dev, "failed to get io clock\n");
                ret = PTR_ERR(sc->clk_io);
@@ -623,7 +623,7 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
                char name[14];
 
                snprintf(name, 14, "mmc_busclk.%d", ptr);
-               clk = clk_get(dev, name);
+               clk = devm_clk_get(dev, name);
                if (IS_ERR(clk))
                        continue;
 
@@ -764,15 +764,9 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
 #ifndef CONFIG_PM_RUNTIME
        clk_disable_unprepare(sc->clk_bus[sc->cur_clk]);
 #endif
-       for (ptr = 0; ptr < MAX_BUS_CLK; ptr++) {
-               if (sc->clk_bus[ptr]) {
-                       clk_put(sc->clk_bus[ptr]);
-               }
-       }
 
  err_no_busclks:
        clk_disable_unprepare(sc->clk_io);
-       clk_put(sc->clk_io);
 
  err_pdata_io_clk:
        sdhci_free_host(host);
@@ -785,7 +779,6 @@ static int sdhci_s3c_remove(struct platform_device *pdev)
        struct sdhci_host *host =  platform_get_drvdata(pdev);
        struct sdhci_s3c *sc = sdhci_priv(host);
        struct s3c_sdhci_platdata *pdata = sc->pdata;
-       int ptr;
 
        if (pdata->cd_type == S3C_SDHCI_CD_EXTERNAL && pdata->ext_cd_cleanup)
                pdata->ext_cd_cleanup(&sdhci_s3c_notify_change);
@@ -805,13 +798,7 @@ static int sdhci_s3c_remove(struct platform_device *pdev)
 #ifndef CONFIG_PM_RUNTIME
        clk_disable_unprepare(sc->clk_bus[sc->cur_clk]);
 #endif
-       for (ptr = 0; ptr < MAX_BUS_CLK; ptr++) {
-               if (sc->clk_bus[ptr]) {
-                       clk_put(sc->clk_bus[ptr]);
-               }
-       }
        clk_disable_unprepare(sc->clk_io);
-       clk_put(sc->clk_io);
 
        sdhci_free_host(host);
        platform_set_drvdata(pdev, NULL);