OSDN Git Service

drm/exynos: enable FIMD clocks
authorVikas Sajjan <vikas.sajjan@linaro.org>
Tue, 23 Apr 2013 11:49:50 +0000 (17:19 +0530)
committerInki Dae <inki.dae@samsung.com>
Mon, 29 Apr 2013 05:35:31 +0000 (14:35 +0900)
Common Clock Framework introduced the need to prepare clocks before
enabling them, otherwise clk_enable() fails. This patch adds clk_prepare_enable
and clk_disable_unprepare() calls to the driver.
This patch also removes clk_disable() from fimd_remove() as it will be done
by pm_runtime_put_sync.

Signed-off-by: Vikas Sajjan <vikas.sajjan@linaro.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_fimd.c

index 4073430..746b282 100644 (file)
@@ -801,18 +801,18 @@ static int fimd_clock(struct fimd_context *ctx, bool enable)
        if (enable) {
                int ret;
 
-               ret = clk_enable(ctx->bus_clk);
+               ret = clk_prepare_enable(ctx->bus_clk);
                if (ret < 0)
                        return ret;
 
-               ret = clk_enable(ctx->lcd_clk);
+               ret = clk_prepare_enable(ctx->lcd_clk);
                if  (ret < 0) {
-                       clk_disable(ctx->bus_clk);
+                       clk_disable_unprepare(ctx->bus_clk);
                        return ret;
                }
        } else {
-               clk_disable(ctx->lcd_clk);
-               clk_disable(ctx->bus_clk);
+               clk_disable_unprepare(ctx->lcd_clk);
+               clk_disable_unprepare(ctx->bus_clk);
        }
 
        return 0;
@@ -996,9 +996,6 @@ static int fimd_remove(struct platform_device *pdev)
        if (ctx->suspended)
                goto out;
 
-       clk_disable(ctx->lcd_clk);
-       clk_disable(ctx->bus_clk);
-
        pm_runtime_set_suspended(dev);
        pm_runtime_put_sync(dev);