[PATCH 1/4] drm/exynos: Prepare/Unprepare HDMI subsystem clocks

2013-06-13 Thread Inki Dae
Applied.

Thanks,
Inki Dae

> -Original Message-
> From: Rahul Sharma [mailto:rahul.sharma at samsung.com]
> Sent: Tuesday, June 11, 2013 3:54 PM
> To: linux-samsung-soc at vger.kernel.org;
devicetree-discuss at lists.ozlabs.org;
> dri-devel at lists.freedesktop.org
> Cc: kgene.kim at samsung.com; sw0312.kim at samsung.com; inki.dae at 
> samsung.com;
> seanpaul at chromium.org; joshi at samsung.com; r.sh.open at gmail.com; Rahul
> Sharma
> Subject: [PATCH 1/4] drm/exynos: Prepare/Unprepare HDMI subsystem clocks
> 
> From: Sean Paul 
> 
> Change the clk_enable/clk_disable calls in mixer and hdmi drivers into
> clk_prepare_enable/clk_disable_unprepare, respectively.
> 
> Signed-off-by: Sean Paul 
> Signed-off-by: Rahul Sharma 
> ---
>  drivers/gpu/drm/exynos/exynos_hdmi.c  |   24 
>  drivers/gpu/drm/exynos/exynos_mixer.c |   12 ++--
>  2 files changed, 18 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c
> b/drivers/gpu/drm/exynos/exynos_hdmi.c
> index 04255fe..5a98194 100644
> --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
> +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
> @@ -1117,9 +1117,9 @@ static void hdmi_v13_mode_apply(struct hdmi_context
> *hdata)
>   hdmi_regs_dump(hdata, "timing apply");
>   }
> 
> - clk_disable(hdata->res.sclk_hdmi);
> + clk_disable_unprepare(hdata->res.sclk_hdmi);
>   clk_set_parent(hdata->res.sclk_hdmi, hdata->res.sclk_hdmiphy);
> - clk_enable(hdata->res.sclk_hdmi);
> + clk_prepare_enable(hdata->res.sclk_hdmi);
> 
>   /* enable HDMI and timing generator */
>   hdmi_reg_writemask(hdata, HDMI_CON_0, ~0, HDMI_EN);
> @@ -1284,9 +1284,9 @@ static void hdmi_v14_mode_apply(struct hdmi_context
> *hdata)
>   hdmi_regs_dump(hdata, "timing apply");
>   }
> 
> - clk_disable(hdata->res.sclk_hdmi);
> + clk_disable_unprepare(hdata->res.sclk_hdmi);
>   clk_set_parent(hdata->res.sclk_hdmi, hdata->res.sclk_hdmiphy);
> - clk_enable(hdata->res.sclk_hdmi);
> + clk_prepare_enable(hdata->res.sclk_hdmi);
> 
>   /* enable HDMI and timing generator */
>   hdmi_reg_writemask(hdata, HDMI_CON_0, ~0, HDMI_EN);
> @@ -1310,9 +1310,9 @@ static void hdmiphy_conf_reset(struct hdmi_context
> *hdata)
>   u8 buffer[2];
>   u32 reg;
> 
> - clk_disable(hdata->res.sclk_hdmi);
> + clk_disable_unprepare(hdata->res.sclk_hdmi);
>   clk_set_parent(hdata->res.sclk_hdmi, hdata->res.sclk_pixel);
> - clk_enable(hdata->res.sclk_hdmi);
> + clk_prepare_enable(hdata->res.sclk_hdmi);
> 
>   /* operation mode */
>   buffer[0] = 0x1f;
> @@ -1701,9 +1701,9 @@ static void hdmi_poweron(struct hdmi_context *hdata)
>   if (regulator_bulk_enable(res->regul_count, res->regul_bulk))
>   DRM_DEBUG_KMS("failed to enable regulator bulk\n");
> 
> - clk_enable(res->hdmiphy);
> - clk_enable(res->hdmi);
> - clk_enable(res->sclk_hdmi);
> + clk_prepare_enable(res->hdmiphy);
> + clk_prepare_enable(res->hdmi);
> + clk_prepare_enable(res->sclk_hdmi);
> 
>   hdmiphy_poweron(hdata);
>  }
> @@ -1726,9 +1726,9 @@ static void hdmi_poweroff(struct hdmi_context
*hdata)
>   hdmiphy_conf_reset(hdata);
>   hdmiphy_poweroff(hdata);
> 
> - clk_disable(res->sclk_hdmi);
> - clk_disable(res->hdmi);
> - clk_disable(res->hdmiphy);
> + clk_disable_unprepare(res->sclk_hdmi);
> + clk_disable_unprepare(res->hdmi);
> + clk_disable_unprepare(res->hdmiphy);
>   regulator_bulk_disable(res->regul_count, res->regul_bulk);
> 
>   mutex_lock(>hdmi_mutex);
> diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c
> b/drivers/gpu/drm/exynos/exynos_mixer.c
> index b0882b3..978894e 100644
> --- a/drivers/gpu/drm/exynos/exynos_mixer.c
> +++ b/drivers/gpu/drm/exynos/exynos_mixer.c
> @@ -900,10 +900,10 @@ static void mixer_poweron(struct mixer_context *ctx)
>   ctx->powered = true;
>   mutex_unlock(>mixer_mutex);
> 
> - clk_enable(res->mixer);
> + clk_prepare_enable(res->mixer);
>   if (ctx->vp_enabled) {
> - clk_enable(res->vp);
> - clk_enable(res->sclk_mixer);
> + clk_prepare_enable(res->vp);
> + clk_prepare_enable(res->sclk_mixer);
>   }
> 
>   mixer_reg_write(res, MXR_INT_EN, ctx->int_en);
> @@ -927,10 +927,10 @@ static void mixer_poweroff(struct mixer_context
*ctx)
> 
>   ctx->int_en = mixer_reg_read(res, MXR_INT_EN);
> 
> - clk_disable(res->mixer);
> + clk_disable_unprepare(res->mixer);
>   if (ctx->vp_enabled) {
> - clk_disable(res->vp);
> - clk_disable(res->sclk_mixer);
> + clk_disable_unprepare(res->vp);
> + clk_disable_unprepare(res->sclk_mixer);
>   }
> 
>   mutex_lock(>mixer_mutex);
> --
> 1.7.10.4



RE: [PATCH 1/4] drm/exynos: Prepare/Unprepare HDMI subsystem clocks

2013-06-13 Thread Inki Dae
Applied.

Thanks,
Inki Dae

 -Original Message-
 From: Rahul Sharma [mailto:rahul.sha...@samsung.com]
 Sent: Tuesday, June 11, 2013 3:54 PM
 To: linux-samsung-...@vger.kernel.org;
devicetree-disc...@lists.ozlabs.org;
 dri-devel@lists.freedesktop.org
 Cc: kgene@samsung.com; sw0312@samsung.com; inki@samsung.com;
 seanp...@chromium.org; jo...@samsung.com; r.sh.o...@gmail.com; Rahul
 Sharma
 Subject: [PATCH 1/4] drm/exynos: Prepare/Unprepare HDMI subsystem clocks
 
 From: Sean Paul seanp...@chromium.org
 
 Change the clk_enable/clk_disable calls in mixer and hdmi drivers into
 clk_prepare_enable/clk_disable_unprepare, respectively.
 
 Signed-off-by: Sean Paul seanp...@chromium.org
 Signed-off-by: Rahul Sharma rahul.sha...@samsung.com
 ---
  drivers/gpu/drm/exynos/exynos_hdmi.c  |   24 
  drivers/gpu/drm/exynos/exynos_mixer.c |   12 ++--
  2 files changed, 18 insertions(+), 18 deletions(-)
 
 diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c
 b/drivers/gpu/drm/exynos/exynos_hdmi.c
 index 04255fe..5a98194 100644
 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
 +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
 @@ -1117,9 +1117,9 @@ static void hdmi_v13_mode_apply(struct hdmi_context
 *hdata)
   hdmi_regs_dump(hdata, timing apply);
   }
 
 - clk_disable(hdata-res.sclk_hdmi);
 + clk_disable_unprepare(hdata-res.sclk_hdmi);
   clk_set_parent(hdata-res.sclk_hdmi, hdata-res.sclk_hdmiphy);
 - clk_enable(hdata-res.sclk_hdmi);
 + clk_prepare_enable(hdata-res.sclk_hdmi);
 
   /* enable HDMI and timing generator */
   hdmi_reg_writemask(hdata, HDMI_CON_0, ~0, HDMI_EN);
 @@ -1284,9 +1284,9 @@ static void hdmi_v14_mode_apply(struct hdmi_context
 *hdata)
   hdmi_regs_dump(hdata, timing apply);
   }
 
 - clk_disable(hdata-res.sclk_hdmi);
 + clk_disable_unprepare(hdata-res.sclk_hdmi);
   clk_set_parent(hdata-res.sclk_hdmi, hdata-res.sclk_hdmiphy);
 - clk_enable(hdata-res.sclk_hdmi);
 + clk_prepare_enable(hdata-res.sclk_hdmi);
 
   /* enable HDMI and timing generator */
   hdmi_reg_writemask(hdata, HDMI_CON_0, ~0, HDMI_EN);
 @@ -1310,9 +1310,9 @@ static void hdmiphy_conf_reset(struct hdmi_context
 *hdata)
   u8 buffer[2];
   u32 reg;
 
 - clk_disable(hdata-res.sclk_hdmi);
 + clk_disable_unprepare(hdata-res.sclk_hdmi);
   clk_set_parent(hdata-res.sclk_hdmi, hdata-res.sclk_pixel);
 - clk_enable(hdata-res.sclk_hdmi);
 + clk_prepare_enable(hdata-res.sclk_hdmi);
 
   /* operation mode */
   buffer[0] = 0x1f;
 @@ -1701,9 +1701,9 @@ static void hdmi_poweron(struct hdmi_context *hdata)
   if (regulator_bulk_enable(res-regul_count, res-regul_bulk))
   DRM_DEBUG_KMS(failed to enable regulator bulk\n);
 
 - clk_enable(res-hdmiphy);
 - clk_enable(res-hdmi);
 - clk_enable(res-sclk_hdmi);
 + clk_prepare_enable(res-hdmiphy);
 + clk_prepare_enable(res-hdmi);
 + clk_prepare_enable(res-sclk_hdmi);
 
   hdmiphy_poweron(hdata);
  }
 @@ -1726,9 +1726,9 @@ static void hdmi_poweroff(struct hdmi_context
*hdata)
   hdmiphy_conf_reset(hdata);
   hdmiphy_poweroff(hdata);
 
 - clk_disable(res-sclk_hdmi);
 - clk_disable(res-hdmi);
 - clk_disable(res-hdmiphy);
 + clk_disable_unprepare(res-sclk_hdmi);
 + clk_disable_unprepare(res-hdmi);
 + clk_disable_unprepare(res-hdmiphy);
   regulator_bulk_disable(res-regul_count, res-regul_bulk);
 
   mutex_lock(hdata-hdmi_mutex);
 diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c
 b/drivers/gpu/drm/exynos/exynos_mixer.c
 index b0882b3..978894e 100644
 --- a/drivers/gpu/drm/exynos/exynos_mixer.c
 +++ b/drivers/gpu/drm/exynos/exynos_mixer.c
 @@ -900,10 +900,10 @@ static void mixer_poweron(struct mixer_context *ctx)
   ctx-powered = true;
   mutex_unlock(ctx-mixer_mutex);
 
 - clk_enable(res-mixer);
 + clk_prepare_enable(res-mixer);
   if (ctx-vp_enabled) {
 - clk_enable(res-vp);
 - clk_enable(res-sclk_mixer);
 + clk_prepare_enable(res-vp);
 + clk_prepare_enable(res-sclk_mixer);
   }
 
   mixer_reg_write(res, MXR_INT_EN, ctx-int_en);
 @@ -927,10 +927,10 @@ static void mixer_poweroff(struct mixer_context
*ctx)
 
   ctx-int_en = mixer_reg_read(res, MXR_INT_EN);
 
 - clk_disable(res-mixer);
 + clk_disable_unprepare(res-mixer);
   if (ctx-vp_enabled) {
 - clk_disable(res-vp);
 - clk_disable(res-sclk_mixer);
 + clk_disable_unprepare(res-vp);
 + clk_disable_unprepare(res-sclk_mixer);
   }
 
   mutex_lock(ctx-mixer_mutex);
 --
 1.7.10.4

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


[PATCH 1/4] drm/exynos: Prepare/Unprepare HDMI subsystem clocks

2013-06-11 Thread Rahul Sharma
From: Sean Paul 

Change the clk_enable/clk_disable calls in mixer and hdmi drivers into
clk_prepare_enable/clk_disable_unprepare, respectively.

Signed-off-by: Sean Paul 
Signed-off-by: Rahul Sharma 
---
 drivers/gpu/drm/exynos/exynos_hdmi.c  |   24 
 drivers/gpu/drm/exynos/exynos_mixer.c |   12 ++--
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 04255fe..5a98194 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -1117,9 +1117,9 @@ static void hdmi_v13_mode_apply(struct hdmi_context 
*hdata)
hdmi_regs_dump(hdata, "timing apply");
}

-   clk_disable(hdata->res.sclk_hdmi);
+   clk_disable_unprepare(hdata->res.sclk_hdmi);
clk_set_parent(hdata->res.sclk_hdmi, hdata->res.sclk_hdmiphy);
-   clk_enable(hdata->res.sclk_hdmi);
+   clk_prepare_enable(hdata->res.sclk_hdmi);

/* enable HDMI and timing generator */
hdmi_reg_writemask(hdata, HDMI_CON_0, ~0, HDMI_EN);
@@ -1284,9 +1284,9 @@ static void hdmi_v14_mode_apply(struct hdmi_context 
*hdata)
hdmi_regs_dump(hdata, "timing apply");
}

-   clk_disable(hdata->res.sclk_hdmi);
+   clk_disable_unprepare(hdata->res.sclk_hdmi);
clk_set_parent(hdata->res.sclk_hdmi, hdata->res.sclk_hdmiphy);
-   clk_enable(hdata->res.sclk_hdmi);
+   clk_prepare_enable(hdata->res.sclk_hdmi);

/* enable HDMI and timing generator */
hdmi_reg_writemask(hdata, HDMI_CON_0, ~0, HDMI_EN);
@@ -1310,9 +1310,9 @@ static void hdmiphy_conf_reset(struct hdmi_context *hdata)
u8 buffer[2];
u32 reg;

-   clk_disable(hdata->res.sclk_hdmi);
+   clk_disable_unprepare(hdata->res.sclk_hdmi);
clk_set_parent(hdata->res.sclk_hdmi, hdata->res.sclk_pixel);
-   clk_enable(hdata->res.sclk_hdmi);
+   clk_prepare_enable(hdata->res.sclk_hdmi);

/* operation mode */
buffer[0] = 0x1f;
@@ -1701,9 +1701,9 @@ static void hdmi_poweron(struct hdmi_context *hdata)
if (regulator_bulk_enable(res->regul_count, res->regul_bulk))
DRM_DEBUG_KMS("failed to enable regulator bulk\n");

-   clk_enable(res->hdmiphy);
-   clk_enable(res->hdmi);
-   clk_enable(res->sclk_hdmi);
+   clk_prepare_enable(res->hdmiphy);
+   clk_prepare_enable(res->hdmi);
+   clk_prepare_enable(res->sclk_hdmi);

hdmiphy_poweron(hdata);
 }
@@ -1726,9 +1726,9 @@ static void hdmi_poweroff(struct hdmi_context *hdata)
hdmiphy_conf_reset(hdata);
hdmiphy_poweroff(hdata);

-   clk_disable(res->sclk_hdmi);
-   clk_disable(res->hdmi);
-   clk_disable(res->hdmiphy);
+   clk_disable_unprepare(res->sclk_hdmi);
+   clk_disable_unprepare(res->hdmi);
+   clk_disable_unprepare(res->hdmiphy);
regulator_bulk_disable(res->regul_count, res->regul_bulk);

mutex_lock(>hdmi_mutex);
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c 
b/drivers/gpu/drm/exynos/exynos_mixer.c
index b0882b3..978894e 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -900,10 +900,10 @@ static void mixer_poweron(struct mixer_context *ctx)
ctx->powered = true;
mutex_unlock(>mixer_mutex);

-   clk_enable(res->mixer);
+   clk_prepare_enable(res->mixer);
if (ctx->vp_enabled) {
-   clk_enable(res->vp);
-   clk_enable(res->sclk_mixer);
+   clk_prepare_enable(res->vp);
+   clk_prepare_enable(res->sclk_mixer);
}

mixer_reg_write(res, MXR_INT_EN, ctx->int_en);
@@ -927,10 +927,10 @@ static void mixer_poweroff(struct mixer_context *ctx)

ctx->int_en = mixer_reg_read(res, MXR_INT_EN);

-   clk_disable(res->mixer);
+   clk_disable_unprepare(res->mixer);
if (ctx->vp_enabled) {
-   clk_disable(res->vp);
-   clk_disable(res->sclk_mixer);
+   clk_disable_unprepare(res->vp);
+   clk_disable_unprepare(res->sclk_mixer);
}

mutex_lock(>mixer_mutex);
-- 
1.7.10.4



[PATCH 1/4] drm/exynos: Prepare/Unprepare HDMI subsystem clocks

2013-06-11 Thread Rahul Sharma
From: Sean Paul seanp...@chromium.org

Change the clk_enable/clk_disable calls in mixer and hdmi drivers into
clk_prepare_enable/clk_disable_unprepare, respectively.

Signed-off-by: Sean Paul seanp...@chromium.org
Signed-off-by: Rahul Sharma rahul.sha...@samsung.com
---
 drivers/gpu/drm/exynos/exynos_hdmi.c  |   24 
 drivers/gpu/drm/exynos/exynos_mixer.c |   12 ++--
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 04255fe..5a98194 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -1117,9 +1117,9 @@ static void hdmi_v13_mode_apply(struct hdmi_context 
*hdata)
hdmi_regs_dump(hdata, timing apply);
}
 
-   clk_disable(hdata-res.sclk_hdmi);
+   clk_disable_unprepare(hdata-res.sclk_hdmi);
clk_set_parent(hdata-res.sclk_hdmi, hdata-res.sclk_hdmiphy);
-   clk_enable(hdata-res.sclk_hdmi);
+   clk_prepare_enable(hdata-res.sclk_hdmi);
 
/* enable HDMI and timing generator */
hdmi_reg_writemask(hdata, HDMI_CON_0, ~0, HDMI_EN);
@@ -1284,9 +1284,9 @@ static void hdmi_v14_mode_apply(struct hdmi_context 
*hdata)
hdmi_regs_dump(hdata, timing apply);
}
 
-   clk_disable(hdata-res.sclk_hdmi);
+   clk_disable_unprepare(hdata-res.sclk_hdmi);
clk_set_parent(hdata-res.sclk_hdmi, hdata-res.sclk_hdmiphy);
-   clk_enable(hdata-res.sclk_hdmi);
+   clk_prepare_enable(hdata-res.sclk_hdmi);
 
/* enable HDMI and timing generator */
hdmi_reg_writemask(hdata, HDMI_CON_0, ~0, HDMI_EN);
@@ -1310,9 +1310,9 @@ static void hdmiphy_conf_reset(struct hdmi_context *hdata)
u8 buffer[2];
u32 reg;
 
-   clk_disable(hdata-res.sclk_hdmi);
+   clk_disable_unprepare(hdata-res.sclk_hdmi);
clk_set_parent(hdata-res.sclk_hdmi, hdata-res.sclk_pixel);
-   clk_enable(hdata-res.sclk_hdmi);
+   clk_prepare_enable(hdata-res.sclk_hdmi);
 
/* operation mode */
buffer[0] = 0x1f;
@@ -1701,9 +1701,9 @@ static void hdmi_poweron(struct hdmi_context *hdata)
if (regulator_bulk_enable(res-regul_count, res-regul_bulk))
DRM_DEBUG_KMS(failed to enable regulator bulk\n);
 
-   clk_enable(res-hdmiphy);
-   clk_enable(res-hdmi);
-   clk_enable(res-sclk_hdmi);
+   clk_prepare_enable(res-hdmiphy);
+   clk_prepare_enable(res-hdmi);
+   clk_prepare_enable(res-sclk_hdmi);
 
hdmiphy_poweron(hdata);
 }
@@ -1726,9 +1726,9 @@ static void hdmi_poweroff(struct hdmi_context *hdata)
hdmiphy_conf_reset(hdata);
hdmiphy_poweroff(hdata);
 
-   clk_disable(res-sclk_hdmi);
-   clk_disable(res-hdmi);
-   clk_disable(res-hdmiphy);
+   clk_disable_unprepare(res-sclk_hdmi);
+   clk_disable_unprepare(res-hdmi);
+   clk_disable_unprepare(res-hdmiphy);
regulator_bulk_disable(res-regul_count, res-regul_bulk);
 
mutex_lock(hdata-hdmi_mutex);
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c 
b/drivers/gpu/drm/exynos/exynos_mixer.c
index b0882b3..978894e 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -900,10 +900,10 @@ static void mixer_poweron(struct mixer_context *ctx)
ctx-powered = true;
mutex_unlock(ctx-mixer_mutex);
 
-   clk_enable(res-mixer);
+   clk_prepare_enable(res-mixer);
if (ctx-vp_enabled) {
-   clk_enable(res-vp);
-   clk_enable(res-sclk_mixer);
+   clk_prepare_enable(res-vp);
+   clk_prepare_enable(res-sclk_mixer);
}
 
mixer_reg_write(res, MXR_INT_EN, ctx-int_en);
@@ -927,10 +927,10 @@ static void mixer_poweroff(struct mixer_context *ctx)
 
ctx-int_en = mixer_reg_read(res, MXR_INT_EN);
 
-   clk_disable(res-mixer);
+   clk_disable_unprepare(res-mixer);
if (ctx-vp_enabled) {
-   clk_disable(res-vp);
-   clk_disable(res-sclk_mixer);
+   clk_disable_unprepare(res-vp);
+   clk_disable_unprepare(res-sclk_mixer);
}
 
mutex_lock(ctx-mixer_mutex);
-- 
1.7.10.4

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