tizen 2.4 release
[kernel/linux-3.0.git] / drivers / gpu / drm / exynos / exynos_mixer.c
index 17f881f..2c70464 100644 (file)
@@ -351,6 +351,18 @@ static void mixer_run(struct mixer_context *ctx)
        mixer_regs_dump(ctx);
 }
 
+static void mixer_wait_for_vblank(void *ctx)
+{
+       struct mixer_context *mixer_ctx = ctx;
+       struct mixer_resources *res = &mixer_ctx->mixer_res;
+       int ret;
+
+       ret = wait_for((mixer_reg_read(res, MXR_INT_STATUS) &
+                               MXR_INT_STATUS_VSYNC), 50);
+       if (ret < 0)
+               DRM_DEBUG_KMS("vblank wait timed out.\n");
+}
+
 static void vp_video_buffer(struct mixer_context *ctx, int win)
 {
        struct mixer_resources *res = &ctx->mixer_res;
@@ -368,6 +380,7 @@ static void vp_video_buffer(struct mixer_context *ctx, int win)
        switch (win_data->pixel_format) {
        case DRM_FORMAT_NV12MT:
                tiled_mode = true;
+       case DRM_FORMAT_NV12:
        case DRM_FORMAT_NV12M:
                crcb_mode = false;
                buf_num = 2;
@@ -465,6 +478,8 @@ static void vp_video_buffer(struct mixer_context *ctx, int win)
        mixer_vsync_set_update(ctx, true);
        spin_unlock_irqrestore(&res->reg_slock, flags);
 
+       mixer_wait_for_vblank(ctx);
+
        vp_regs_dump(ctx);
 }
 
@@ -791,18 +806,6 @@ static void mixer_dpms(void *ctx, int mode)
        }
 }
 
-static void mixer_wait_for_vblank(void *ctx)
-{
-       struct mixer_context *mixer_ctx = ctx;
-       struct mixer_resources *res = &mixer_ctx->mixer_res;
-       int ret;
-
-       ret = wait_for((mixer_reg_read(res, MXR_INT_STATUS) &
-                               MXR_INT_STATUS_VSYNC), 50);
-       if (ret < 0)
-               DRM_DEBUG_KMS("vblank wait timed out.\n");
-}
-
 static void mixer_win_mode_set(void *ctx,
                              struct exynos_drm_overlay *overlay)
 {