From e5ccf3ab7f752c1942d6e3b0c353f89d1bf76ba6 Mon Sep 17 00:00:00 2001 From: yao liu Date: Fri, 17 May 2019 17:32:59 +0800 Subject: [PATCH] dv: The first frame is abnormal when play video [1/1] PD#SWPL-6480 Problem: core1 reg is set wrong for g12 and tm2 Solution: correct core1 reg for g12 and tm2 Verify: verified by u212 Change-Id: Ie9de107fce6f23ded1397827ebe95a00939df8c1 Signed-off-by: yao liu --- .../enhancement/amdolby_vision/amdolby_vision.c | 32 +++++++++++++++------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c b/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c index d4ed4fc..cad59ee 100644 --- a/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c +++ b/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c @@ -2002,7 +2002,7 @@ static int dolby_core1_set( } if (dolby_vision_on_count - <= dolby_vision_run_mode_delay) { + < dolby_vision_run_mode_delay) { VSYNC_WR_DV_REG( VPP_VD1_CLIP_MISC0, (0x200 << 10) | 0x200); @@ -3228,18 +3228,30 @@ void enable_dolby_vision(int enable) if (!dolby_vision_core1_on && (dolby_vision_mask & 1) && dovi_setting_video_flag) { - VSYNC_WR_DV_REG_BITS( - VIU_MISC_CTRL1, - 0, - 16, 1); /* core1 */ + if (is_meson_g12() || is_meson_tm2_stbmode()) + VSYNC_WR_DV_REG_BITS( + DOLBY_PATH_CTRL, + /* enable core1 */ + 0, 0, 1); + else + VSYNC_WR_DV_REG_BITS( + VIU_MISC_CTRL1, + 0, + 16, 1); /* core1 */ dolby_vision_core1_on = true; } else if (dolby_vision_core1_on && (!(dolby_vision_mask & 1) - || !dovi_setting_video_flag)){ - VSYNC_WR_DV_REG_BITS( - VIU_MISC_CTRL1, - 1, - 16, 1); /* core1 */ + || !dovi_setting_video_flag)) { + if (is_meson_g12() || is_meson_tm2_stbmode()) + VSYNC_WR_DV_REG_BITS( + DOLBY_PATH_CTRL, + /* disable core1 */ + 1, 0, 1); + else + VSYNC_WR_DV_REG_BITS( + VIU_MISC_CTRL1, + 1, + 16, 1); /* core1 */ dolby_vision_core1_on = false; } } -- 2.7.4