mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
vpp: support the interlace format from vdin afbc [1/2]
PD#SWPL-5205 Problem: Now vdin support afbc+interlace format Solution: In vpp, add case to support vdin afbc with interlace Verify: tl1_x301, verify pass Change-Id: I6540b03a6cb5308fc2bc202069aa87234fd35df6 Signed-off-by: Yong Qin <yong.qin@amlogic.com>
This commit is contained in:
@@ -494,6 +494,7 @@ const char video_dev_id2[] = "amvideo-dev2";
|
||||
int onwaitendframe;
|
||||
|
||||
static u32 vpp_hold_line = 8;
|
||||
static u32 stop_update;
|
||||
|
||||
struct video_dev_s video_dev[2] = {
|
||||
{0x1d00 - 0x1d00, 0x1a50 - 0x1a50},
|
||||
@@ -4026,6 +4027,8 @@ static void vsync_toggle_frame(struct vframe_s *vf)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
if (stop_update)
|
||||
frame_par_ready_to_set = 0;
|
||||
}
|
||||
|
||||
static void viu_set_dcu(struct vpp_frame_par_s *frame_par, struct vframe_s *vf)
|
||||
@@ -7072,7 +7075,15 @@ SET_FILTER:
|
||||
u32 zoom_start_y, zoom_end_y;
|
||||
correct_vd1_mif_size_for_DV(cur_frame_par);
|
||||
if (cur_dispbuf->type & VIDTYPE_INTERLACE) {
|
||||
if (cur_dispbuf->type & VIDTYPE_VIU_FIELD) {
|
||||
if (cur_dispbuf->type
|
||||
& VIDTYPE_COMPRESS) {
|
||||
/* for vdin afbc and interlace case */
|
||||
zoom_start_y =
|
||||
cur_frame_par->VPP_vd_start_lines_;
|
||||
zoom_end_y =
|
||||
cur_frame_par->VPP_vd_end_lines_;
|
||||
} else if (cur_dispbuf->type
|
||||
& VIDTYPE_VIU_FIELD) {
|
||||
zoom_start_y =
|
||||
cur_frame_par->VPP_vd_start_lines_
|
||||
>> 1;
|
||||
@@ -12796,6 +12807,9 @@ module_param(toggle_count, uint, 0664);
|
||||
MODULE_PARM_DESC(vpp_hold_line, "\n vpp_hold_line\n");
|
||||
module_param(vpp_hold_line, uint, 0664);
|
||||
|
||||
MODULE_PARM_DESC(stop_update, "\n stop_update\n");
|
||||
module_param(stop_update, uint, 0664);
|
||||
|
||||
MODULE_PARM_DESC(reference_zorder, "\n reference_zorder\n");
|
||||
module_param(reference_zorder, uint, 0664);
|
||||
|
||||
|
||||
@@ -2928,7 +2928,10 @@ int vpp_set_filters(
|
||||
aspect_ratio = (vf->ratio_control & DISP_RATIO_ASPECT_RATIO_MASK)
|
||||
>> DISP_RATIO_ASPECT_RATIO_BIT;
|
||||
|
||||
if (vf->type & VIDTYPE_INTERLACE)
|
||||
/* the height from vdin afbc will be half */
|
||||
/* so need no interlace in */
|
||||
if ((vf->type & VIDTYPE_INTERLACE)
|
||||
&& !(vf->type & VIDTYPE_COMPRESS))
|
||||
vpp_flags = VPP_FLAG_INTERLACE_IN;
|
||||
|
||||
if (vf->ratio_control & DISP_RATIO_PORTRAIT_MODE)
|
||||
|
||||
Reference in New Issue
Block a user