diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 031de4f6b5e5..fe9656c75a38 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1963,6 +1963,10 @@ static void vop_plane_atomic_update(struct drm_plane *plane, spin_lock(&vop->reg_lock); VOP_WIN_SET(vop, win, format, vop_plane_state->format); + + VOP_WIN_SET(vop, win, interlace_read, + (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) ? 1 : 0); + VOP_WIN_SET(vop, win, yrgb_vir, DIV_ROUND_UP(fb->pitches[0], 4)); VOP_WIN_SET(vop, win, yrgb_mst, vop_plane_state->yrgb_mst); diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h index b0864ede2ae8..238bf65eab1e 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h @@ -512,6 +512,7 @@ struct vop_win_phy { struct vop_reg gate; struct vop_reg enable; struct vop_reg format; + struct vop_reg interlace_read; struct vop_reg fmt_10; struct vop_reg fmt_yuyv; struct vop_reg csc_mode; diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c index e9b60533723d..9462223ca3bd 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c @@ -1409,6 +1409,7 @@ static const struct vop_win_phy rk3366_lit_win0_data = { .enable = VOP_REG(RK3366_LIT_WIN0_CTRL0, 0x1, 0), .format = VOP_REG(RK3366_LIT_WIN0_CTRL0, 0x7, 1), + .interlace_read = VOP_REG(RK3366_LIT_WIN0_CTRL0, 0x1, 8), .rb_swap = VOP_REG(RK3366_LIT_WIN0_CTRL0, 0x1, 12), .act_info = VOP_REG(RK3366_LIT_WIN0_ACT_INFO, 0xffffffff, 0), .dsp_info = VOP_REG(RK3366_LIT_WIN0_DSP_INFO, 0xffffffff, 0), @@ -1432,6 +1433,7 @@ static const struct vop_win_phy rk3366_lit_win1_data = { .enable = VOP_REG(RK3366_LIT_WIN1_CTRL0, 0x1, 0), .format = VOP_REG(RK3366_LIT_WIN1_CTRL0, 0x7, 4), + .interlace_read = VOP_REG(RK3366_LIT_WIN1_CTRL0, 0x1, 8), .rb_swap = VOP_REG(RK3366_LIT_WIN1_CTRL0, 0x1, 12), .dsp_info = VOP_REG(RK3366_LIT_WIN1_DSP_INFO, 0xffffffff, 0), .dsp_st = VOP_REG(RK3366_LIT_WIN1_DSP_ST, 0xffffffff, 0),