From cd08e1a5ca8ef5c5051e57f97c5c5f55a89b80af Mon Sep 17 00:00:00 2001 From: Chaoyi Chen Date: Mon, 31 Mar 2025 10:57:07 +0800 Subject: [PATCH] drm/rockchip: vop: Add interlace mode support for RV1126B Change-Id: Ieffc2d9a2862b854895a77befe8d201fea9ad984 Signed-off-by: Chaoyi Chen --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 6 ++++-- drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 868d11eec026..0b8ea45eba6f 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -2626,7 +2626,8 @@ static void vop_plane_atomic_update(struct drm_plane *plane, } if ((vop->version == VOP_VERSION_RK3036 || vop->version == VOP_VERSION_RK3506 || - vop->version == VOP_VERSION_RK3576_LITE) && + vop->version == VOP_VERSION_RK3576_LITE || + vop->version == VOP_VERSION_RV1126B) && (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE)) dsp_h = dsp_h / 2; @@ -2643,7 +2644,8 @@ static void vop_plane_atomic_update(struct drm_plane *plane, dsp_sty = dest->y1 + mode->crtc_vtotal - mode->crtc_vsync_start; if ((vop->version == VOP_VERSION_RK3036 || vop->version == VOP_VERSION_RK3506 || - vop->version == VOP_VERSION_RK3576_LITE) && + vop->version == VOP_VERSION_RK3576_LITE || + vop->version == VOP_VERSION_RV1126B) && (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE)) dsp_sty = dest->y1 / 2 + mode->crtc_vtotal - mode->crtc_vsync_start; dsp_st = dsp_sty << 16 | (dsp_stx & 0xffff); diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c index e5075412065e..b5f1d7652306 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c @@ -1639,6 +1639,7 @@ static const struct vop_win_phy px30_win23_data = { .csc_mode = VOP_REG(RK3368_WIN2_CTRL0, 0x3, 2), .format = VOP_REG(RK3368_WIN2_CTRL0, 0x3, 5), .rb_swap = VOP_REG(RK3368_WIN2_CTRL0, 0x1, 20), + .interlace_read = VOP_REG(RK3368_WIN2_CTRL0, 0x1, 1), .dsp_info = VOP_REG(RK3368_WIN2_DSP_INFO0, 0x0fff0fff, 0), .dsp_st = VOP_REG(RK3368_WIN2_DSP_ST0, 0x1fff1fff, 0), .yrgb_mst = VOP_REG(RK3368_WIN2_MST0, 0xffffffff, 0),