Skip to content

Commit b00582b

Browse files
Brian Zhujianxinpan
authored andcommitted
vpp: config the vd1 canvas1 correctly when 3D enabled [1/1]
PD#TV-3086 Problem: 3D display abnormal. The vd1 canvas1 was incorrect. Solution: When enabled 3D function, config vd1 canvas1 correctly Verify: x301 Change-Id: I201cda2f33badf1af54ab4f177a17f761c7cea8d Signed-off-by: Brian Zhu <[email protected]>
1 parent 607bc19 commit b00582b

File tree

1 file changed

+16
-12
lines changed
  • drivers/amlogic/media/video_sink

1 file changed

+16
-12
lines changed

drivers/amlogic/media/video_sink/video.c

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3737,7 +3737,7 @@ static void vsync_toggle_frame(struct vframe_s *vf)
37373737
vf->plane_num,
37383738
&disp_canvas_index[rdma_canvas_id][0]);
37393739
}
3740-
if (is_mvc) {
3740+
if (is_mvc || process_3d_type) {
37413741
if (vf->canvas1Addr != (u32)-1) {
37423742
canvas_copy(vf->canvas1Addr & 0xff,
37433743
disp_canvas_index[rdma_canvas_id][3]);
@@ -3778,18 +3778,22 @@ static void vsync_toggle_frame(struct vframe_s *vf)
37783778
disp_canvas[rdma_canvas_id][0]);
37793779
}
37803780
if (cur_frame_par
3781-
&& (process_3d_type & MODE_3D_ENABLE)
3782-
&& (process_3d_type & MODE_3D_TO_2D_R)
3783-
&& (cur_frame_par->vpp_2pic_mode == VPP_SELECT_PIC1)
3784-
&& is_mvc) {
3781+
&& (process_3d_type & MODE_3D_ENABLE)
3782+
&& (process_3d_type & MODE_3D_TO_2D_R)
3783+
&& (cur_frame_par->vpp_2pic_mode
3784+
== VPP_SELECT_PIC1)) {
37853785
VSYNC_WR_MPEG_REG(VD1_IF0_CANVAS0 + cur_dev->viu_off,
3786-
disp_canvas[rdma_canvas_id][1]);
3786+
disp_canvas[rdma_canvas_id][1]);
37873787
VSYNC_WR_MPEG_REG(VD1_IF0_CANVAS1 + cur_dev->viu_off,
3788-
disp_canvas[rdma_canvas_id][1]);
3789-
VSYNC_WR_MPEG_REG(VD2_IF0_CANVAS0 + cur_dev->viu_off,
3790-
disp_canvas[rdma_canvas_id][1]);
3791-
VSYNC_WR_MPEG_REG(VD2_IF0_CANVAS1 + cur_dev->viu_off,
3792-
disp_canvas[rdma_canvas_id][1]);
3788+
disp_canvas[rdma_canvas_id][1]);
3789+
if (is_mvc) {
3790+
VSYNC_WR_MPEG_REG(
3791+
VD2_IF0_CANVAS0 + cur_dev->viu_off,
3792+
disp_canvas[rdma_canvas_id][1]);
3793+
VSYNC_WR_MPEG_REG(
3794+
VD2_IF0_CANVAS1 + cur_dev->viu_off,
3795+
disp_canvas[rdma_canvas_id][1]);
3796+
}
37933797
}
37943798
next_rdma_canvas_id = rdma_canvas_id ? 0 : 1;
37953799
#else
@@ -3798,7 +3802,7 @@ static void vsync_toggle_frame(struct vframe_s *vf)
37983802
disp_canvas_index[1]);
37993803
canvas_copy((vf->canvas0Addr >> 16) & 0xff,
38003804
disp_canvas_index[2]);
3801-
if (is_mvc) {
3805+
if (is_mvc || process_3d_type) {
38023806
canvas_copy(vf->canvas1Addr & 0xff,
38033807
disp_canvas_index[3]);
38043808
canvas_copy((vf->canvas1Addr >> 8) & 0xff,

0 commit comments

Comments
 (0)