diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 014f35e77e62..cd20cbaa7482 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -3262,6 +3262,12 @@ static void vop_mcu_mode(struct drm_crtc *crtc) { struct vop *vop = to_vop(crtc); + /* + * If mcu_hold_mode is 1, set 1 to mcu_frame_st will + * refresh one frame from ddr. So mcu_frame_st is needed + * to be initialized as 0. + */ + VOP_CTRL_SET(vop, mcu_frame_st, 0); VOP_CTRL_SET(vop, mcu_clk_sel, 1); VOP_CTRL_SET(vop, mcu_type, 1);