diff mbox

[v2,RESEND] mmc: sdhci-s3c: Use devm_clk_get()

Message ID 01c101ce08d0$7d8808d0$78981a70$%han@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jingoo Han Feb. 12, 2013, 3:24 a.m. UTC
Use devm_clk_get() rather than clk_get() to make cleanup paths
more simple.

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

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

Comments

Ulf Hansson Feb. 14, 2013, 11:58 a.m. UTC | #1
On 12 February 2013 04:24, Jingoo Han <jg1.han@samsung.com> wrote:
> Use devm_clk_get() rather than clk_get() to make cleanup paths
> more simple.
>
> Signed-off-by: Jingoo Han <jg1.han@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 majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jaehoon Chung Feb. 15, 2013, 11:59 a.m. UTC | #2
It looks good to me.

Acked-by: Jaehoon Chung <jh80.chung@samsung.com>

On 02/14/2013 08:58 PM, Ulf Hansson wrote:
> On 12 February 2013 04:24, Jingoo Han <jg1.han@samsung.com> wrote:
>> Use devm_clk_get() rather than clk_get() to make cleanup paths
>> more simple.
>>
>> Signed-off-by: Jingoo Han <jg1.han@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 majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Chris Ball March 22, 2013, 3:53 p.m. UTC | #3
Hi,

On Mon, Feb 11 2013, Jingoo Han wrote:
> Use devm_clk_get() rather than clk_get() to make cleanup paths
> more simple.
>
> Signed-off-by: Jingoo Han <jg1.han@samsung.com>
> ---
> Changes since v1:
> - modified the commit message

Thanks, pushed to mmc-next for 3.10.

- Chris.
diff mbox

Patch

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);