summaryrefslogtreecommitdiff
authoryao 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)
commit0d50db75aea1500428a13a24e277d97764d759a8 (patch)
treed0e318fe7295a0f5795ae15ff8e9f4af6402ff57
parent35cdd46da94a028ce45fdcf41fcfa457cfe1fc80 (diff)
downloadcommon-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>
Diffstat
-rw-r--r--drivers/amlogic/media/enhancement/amdolby_vision/amdolby_vision.c19
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)