diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h index 4104cc48a24e..b568dc209890 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h @@ -973,6 +973,7 @@ struct vop2_ctrl { struct vop_reg dp_dual_en; struct vop_reg edp_dual_en; struct vop_reg hdmi_dual_en; + struct vop_reg mipi_dual_en; struct vop_reg hdmi0_dclk_div; struct vop_reg hdmi0_pixclk_div; diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 8795e6f22a03..cb582a8c8d28 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -5255,6 +5255,9 @@ static void vop2_setup_dual_channel_if(struct drm_crtc *crtc) case DRM_MODE_CONNECTOR_HDMIA: VOP_CTRL_SET(vop2, hdmi_dual_en, 1); break; + case DRM_MODE_CONNECTOR_DSI: + VOP_CTRL_SET(vop2, mipi_dual_en, 1); + break; default: break; } diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c index de2c78555a8e..612f4af60a17 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c @@ -2421,6 +2421,7 @@ static const struct vop2_ctrl rk3588_vop_ctrl = { .hdmi_dual_en = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 8), .edp_dual_en = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 8), .dp_dual_en = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 9), + .mipi_dual_en = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 10), .mipi0_ds_mode = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 11), .mipi1_ds_mode = VOP_REG(RK3568_DSP_IF_CTRL, 0x1, 12), .hdmi0_dclk_div = VOP_REG(RK3568_DSP_IF_CTRL, 0x3, 16),