Use devm_clk_get() rather than clk_get() to make cleanup paths
more simple.

Signed-off-by: Jingoo Han <jg1....@samsung.com>
---
Changes since v1:
- modified the commit message

 drivers/mmc/host/sdhci-s3c.c |   17 ++---------------
 1 files changed, 2 insertions(+), 15 deletions(-)

diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index 82a8de1..5aaef5b 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -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;
 
@@ -765,15 +765,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);
@@ -786,7 +780,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);
@@ -806,13 +799,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);
-- 
1.7.2.5


--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to