Commit f181a543 authored by YoungJun Cho's avatar YoungJun Cho Committed by Inki Dae

drm/exynos: fimd: add fimd_enable_video_output() to cleanup

This bit is used for video output and logic signal control.
So it is better for readability.
Signed-off-by: default avatarYoungJun Cho <yj44.cho@samsung.com>
Acked-by: default avatarInki Dae <inki.dae@samsung.com>
Acked-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
parent 74944a58
...@@ -229,6 +229,19 @@ static void fimd_wait_for_vblank(struct exynos_drm_manager *mgr) ...@@ -229,6 +229,19 @@ static void fimd_wait_for_vblank(struct exynos_drm_manager *mgr)
DRM_DEBUG_KMS("vblank wait timed out.\n"); DRM_DEBUG_KMS("vblank wait timed out.\n");
} }
static void fimd_enable_video_output(struct fimd_context *ctx, int win,
bool enable)
{
u32 val = readl(ctx->regs + WINCON(win));
if (enable)
val |= WINCONx_ENWIN;
else
val &= ~WINCONx_ENWIN;
writel(val, ctx->regs + WINCON(win));
}
static void fimd_clear_channel(struct exynos_drm_manager *mgr) static void fimd_clear_channel(struct exynos_drm_manager *mgr)
{ {
struct fimd_context *ctx = mgr->ctx; struct fimd_context *ctx = mgr->ctx;
...@@ -241,9 +254,7 @@ static void fimd_clear_channel(struct exynos_drm_manager *mgr) ...@@ -241,9 +254,7 @@ static void fimd_clear_channel(struct exynos_drm_manager *mgr)
u32 val = readl(ctx->regs + WINCON(win)); u32 val = readl(ctx->regs + WINCON(win));
if (val & WINCONx_ENWIN) { if (val & WINCONx_ENWIN) {
/* wincon */ fimd_enable_video_output(ctx, win, false);
val &= ~WINCONx_ENWIN;
writel(val, ctx->regs + WINCON(win));
/* unprotect windows */ /* unprotect windows */
if (ctx->driver_data->has_shadowcon) { if (ctx->driver_data->has_shadowcon) {
...@@ -746,10 +757,7 @@ static void fimd_win_commit(struct exynos_drm_manager *mgr, int zpos) ...@@ -746,10 +757,7 @@ static void fimd_win_commit(struct exynos_drm_manager *mgr, int zpos)
if (win != 0) if (win != 0)
fimd_win_set_colkey(ctx, win); fimd_win_set_colkey(ctx, win);
/* wincon */ fimd_enable_video_output(ctx, win, true);
val = readl(ctx->regs + WINCON(win));
val |= WINCONx_ENWIN;
writel(val, ctx->regs + WINCON(win));
if (ctx->driver_data->has_shadowcon) { if (ctx->driver_data->has_shadowcon) {
val = readl(ctx->regs + SHADOWCON); val = readl(ctx->regs + SHADOWCON);
...@@ -790,10 +798,7 @@ static void fimd_win_disable(struct exynos_drm_manager *mgr, int zpos) ...@@ -790,10 +798,7 @@ static void fimd_win_disable(struct exynos_drm_manager *mgr, int zpos)
/* protect windows */ /* protect windows */
fimd_shadow_protect_win(ctx, win, true); fimd_shadow_protect_win(ctx, win, true);
/* wincon */ fimd_enable_video_output(ctx, win, false);
val = readl(ctx->regs + WINCON(win));
val &= ~WINCONx_ENWIN;
writel(val, ctx->regs + WINCON(win));
/* unprotect windows */ /* unprotect windows */
if (ctx->driver_data->has_shadowcon) { if (ctx->driver_data->has_shadowcon) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment