author | yao liu <yao.liu@amlogic.com> | 2019-10-15 07:34:13 (GMT) |
---|---|---|
committer | zihuan.ling <zihuan.ling@amlogic.com> | 2019-10-17 06:05:45 (GMT) |
commit | 0d50db75aea1500428a13a24e277d97764d759a8 (patch) | |
tree | d0e318fe7295a0f5795ae15ff8e9f4af6402ff57 | |
parent | 35cdd46da94a028ce45fdcf41fcfa457cfe1fc80 (diff) | |
download | common-0d50db75aea1500428a13a24e277d97764d759a8.zip common-0d50db75aea1500428a13a24e277d97764d759a8.tar.gz common-0d50db75aea1500428a13a24e277d97764d759a8.tar.bz2 |
dv: display abnormal at 1080p24hz [1/1]
PD#SWPL-12495
Problem:
vpotch is small at 1080p24hz
Solution:
increase vpotch to 0x60
Verify:
SM1
Change-Id: I1505b0742b7e58c89396673e68b55384fa09551c
Signed-off-by: yao liu <yao.liu@amlogic.com>
-rw-r--r-- | drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c b/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c index c0db232..653bca7 100644 --- a/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c +++ b/drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c @@ -2682,6 +2682,7 @@ int get_mute_type(void) static void adjust_vpotch(void) { const struct vinfo_s *vinfo = get_current_vinfo(); + int sync_duration_num = 60; if (is_meson_txlx_stbmode() || force_stb_mode) { @@ -2701,11 +2702,17 @@ static void adjust_vpotch(void) g_vpotch = 0x20; } else if (is_meson_g12()) { if (vinfo) { + if (vinfo->sync_duration_den) + sync_duration_num = vinfo->sync_duration_num / + vinfo->sync_duration_den; if (debug_dolby & 2) - pr_dolby_dbg("vinfo %d %d %d\n", - vinfo->width, - vinfo->height, - vinfo->field_height); + pr_dolby_dbg("vinfo %d %d %d %d %d %d\n", + vinfo->width, + vinfo->height, + vinfo->field_height, + vinfo->sync_duration_num, + vinfo->sync_duration_den, + sync_duration_num); if ((vinfo->width < 1280) && (vinfo->height < 720) && (vinfo->field_height < 720)) @@ -2713,6 +2720,10 @@ static void adjust_vpotch(void) else if ((vinfo->width == 1280) && (vinfo->height == 720)) g_vpotch = 0x38; + else if ((vinfo->width == 1920) && + (vinfo->height == 1080) && + (sync_duration_num < 30)) + g_vpotch = 0x60; else g_vpotch = 0x20; if (vinfo->width > 1920) |