[PATCH 10/10] drm/exynos: Use devm_clk_get in exynos_drm_gsc.c

2012-12-24 Thread Sachin Kamat
This eliminates the need for explicit clk_put and makes the
cleanup and exit path code simpler.

Cc: Eunchul Kim 
Signed-off-by: Sachin Kamat 
---
 drivers/gpu/drm/exynos/exynos_drm_gsc.c |   13 -
 1 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_gsc.c 
b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
index e21a0d9..0497e90 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gsc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
@@ -1696,7 +1696,7 @@ static int __devinit gsc_probe(struct platform_device 
*pdev)
return -ENOMEM;

/* clock control */
-   ctx->gsc_clk = clk_get(dev, "gscl");
+   ctx->gsc_clk = devm_clk_get(dev, "gscl");
if (IS_ERR(ctx->gsc_clk)) {
dev_err(dev, "failed to get gsc clock.\n");
return PTR_ERR(ctx->gsc_clk);
@@ -1707,16 +1707,14 @@ static int __devinit gsc_probe(struct platform_device 
*pdev)
ctx->regs = devm_request_and_ioremap(dev, ctx->regs_res);
if (!ctx->regs) {
dev_err(dev, "failed to map registers.\n");
-   ret = -ENXIO;
-   goto err_clk;
+   return -ENXIO;
}

/* resource irq */
res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
if (!res) {
dev_err(dev, "failed to request irq resource.\n");
-   ret = -ENOENT;
-   goto err_clk;
+   return -ENOENT;
}

ctx->irq = res->start;
@@ -1724,7 +1722,7 @@ static int __devinit gsc_probe(struct platform_device 
*pdev)
IRQF_ONESHOT, "drm_gsc", ctx);
if (ret < 0) {
dev_err(dev, "failed to request irq.\n");
-   goto err_clk;
+   return ret;
}

/* context initailization */
@@ -1768,8 +1766,6 @@ err_ippdrv_register:
pm_runtime_disable(dev);
 err_get_irq:
free_irq(ctx->irq, ctx);
-err_clk:
-   clk_put(ctx->gsc_clk);
return ret;
 }

@@ -1787,7 +1783,6 @@ static int __devexit gsc_remove(struct platform_device 
*pdev)
pm_runtime_disable(dev);

free_irq(ctx->irq, ctx);
-   clk_put(ctx->gsc_clk);

return 0;
 }
-- 
1.7.4.1



[PATCH 10/10] drm/exynos: Use devm_clk_get in exynos_drm_gsc.c

2012-12-24 Thread Sachin Kamat
This eliminates the need for explicit clk_put and makes the
cleanup and exit path code simpler.

Cc: Eunchul Kim chulspro@samsung.com
Signed-off-by: Sachin Kamat sachin.ka...@linaro.org
---
 drivers/gpu/drm/exynos/exynos_drm_gsc.c |   13 -
 1 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_gsc.c 
b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
index e21a0d9..0497e90 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gsc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
@@ -1696,7 +1696,7 @@ static int __devinit gsc_probe(struct platform_device 
*pdev)
return -ENOMEM;
 
/* clock control */
-   ctx-gsc_clk = clk_get(dev, gscl);
+   ctx-gsc_clk = devm_clk_get(dev, gscl);
if (IS_ERR(ctx-gsc_clk)) {
dev_err(dev, failed to get gsc clock.\n);
return PTR_ERR(ctx-gsc_clk);
@@ -1707,16 +1707,14 @@ static int __devinit gsc_probe(struct platform_device 
*pdev)
ctx-regs = devm_request_and_ioremap(dev, ctx-regs_res);
if (!ctx-regs) {
dev_err(dev, failed to map registers.\n);
-   ret = -ENXIO;
-   goto err_clk;
+   return -ENXIO;
}
 
/* resource irq */
res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
if (!res) {
dev_err(dev, failed to request irq resource.\n);
-   ret = -ENOENT;
-   goto err_clk;
+   return -ENOENT;
}
 
ctx-irq = res-start;
@@ -1724,7 +1722,7 @@ static int __devinit gsc_probe(struct platform_device 
*pdev)
IRQF_ONESHOT, drm_gsc, ctx);
if (ret  0) {
dev_err(dev, failed to request irq.\n);
-   goto err_clk;
+   return ret;
}
 
/* context initailization */
@@ -1768,8 +1766,6 @@ err_ippdrv_register:
pm_runtime_disable(dev);
 err_get_irq:
free_irq(ctx-irq, ctx);
-err_clk:
-   clk_put(ctx-gsc_clk);
return ret;
 }
 
@@ -1787,7 +1783,6 @@ static int __devexit gsc_remove(struct platform_device 
*pdev)
pm_runtime_disable(dev);
 
free_irq(ctx-irq, ctx);
-   clk_put(ctx-gsc_clk);
 
return 0;
 }
-- 
1.7.4.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel