vpp: set the sr position reg correctly [1/1]

PD#SWPL-14963

Problem:
The position bits of super scaler is incorrect.

Solution:
Set the position bits correctly

Verify:
Verified on U212

Change-Id: I133662859456f65e130b8795f574da845039c717
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>
This commit is contained in:
Brian Zhu
2019-10-10 01:24:07 +08:00
committed by Luan Yuan
parent e60c74ffd2
commit 62d79dab80
2 changed files with 17 additions and 7 deletions

View File

@@ -8198,9 +8198,9 @@ SET_FILTER:
if (cur_frame_par->sr0_position)
vpp_misc_set |=
PREBLD_SR0_VD1_SCALER;
else
else /* SR0_AFTER_DNLP */
vpp_misc_set &=
~SR0_AFTER_DNLP;
~PREBLD_SR0_VD1_SCALER;
else
vpp_misc_set |=
PREBLD_SR0_VD1_SCALER;
@@ -8211,9 +8211,9 @@ SET_FILTER:
if (cur_frame_par->sr1_position)
vpp_misc_set |=
DNLP_SR1_CM;
else
else /* SR1_AFTER_POSTBLEN */
vpp_misc_set &=
~SR1_AFTER_POSTBLEN;
~DNLP_SR1_CM;
else
vpp_misc_set |=
DNLP_SR1_CM;
@@ -13261,9 +13261,8 @@ static int __init video_early_init(void)
} else if (cpu_after_eq(MESON_CPU_MAJOR_ID_G12B)) {
WRITE_VCBUS_REG_BITS(
SRSHARP0_SHARP_SYNC_CTRL, 1, 0, 1);
/* TODO: check if the bit8 is available */
/* WRITE_VCBUS_REG_BITS( */
/* SRSHARP0_SHARP_SYNC_CTRL, 1, 8, 1); */
WRITE_VCBUS_REG_BITS(
SRSHARP0_SHARP_SYNC_CTRL, 1, 8, 1);
}
return 0;
}

View File

@@ -2009,6 +2009,16 @@ static void vpp_set_super_scaler(
next_frame_par->supsc1_vert_ratio ? 1 : 0;
next_frame_par->supsc1_hori_ratio = 0;
}
/*double check core0 input width for core0_vert_ratio!!!*/
if (next_frame_par->supsc0_vert_ratio &&
(width_out >> next_frame_par->supsc0_hori_ratio >
sr->core0_v_enable_width_max)) {
next_frame_par->supsc0_vert_ratio = 0;
if (next_frame_par->supsc0_hori_ratio == 0)
next_frame_par->supsc0_enable = 0;
}
/*double check core1 input width for core1_vert_ratio!!!*/
if (next_frame_par->supsc1_vert_ratio &&
(width_out >> next_frame_par->supsc1_hori_ratio >
@@ -2017,6 +2027,7 @@ static void vpp_set_super_scaler(
if (next_frame_par->supsc1_hori_ratio == 0)
next_frame_par->supsc1_enable = 0;
}
/* option add patch */
if ((ver_sc_multiple_num <= super_scaler_v_ratio) &&
(src_height >= SUPER_CORE0_WIDTH_MAX / 2) &&