drm/rockchip: vop2: reset dclk after config stream output

In RK3576, DP0 attach to VP1 or VP2 will cause vertical stripe. It
need reset dclk after config stream output to avoid this issue.

Change-Id: I00112e8541828ed53a2ea91e7d79f8d148a7b3df
Signed-off-by: Zhang Yubing <yubing.zhang@rock-chips.com>
This commit is contained in:
Zhang Yubing
2024-12-17 11:10:42 +08:00
committed by Tao Huang
parent cd51e4eb73
commit fdcec7349c

View File

@@ -1070,6 +1070,7 @@ static DRM_ENUM_NAME_FN(drm_get_bus_format_name, drm_bus_format_enum_list)
static inline void vop2_cfg_done(struct drm_crtc *crtc);
static void vop2_wait_for_fs_by_done_bit_status(struct vop2_video_port *vp);
static int vop2_clk_reset(struct reset_control *rstc);
static inline struct vop2_video_port *to_vop2_video_port(struct drm_crtc *crtc)
{
@@ -1267,6 +1268,9 @@ static void vop2_crtc_output_post_enable(struct drm_crtc *crtc, int intf)
vop2_wait_for_fs_by_done_bit_status(vp);
}
if (!vp->loader_protect)
vop2_clk_reset(vp->dclk_rst);
drm_info(vop2, "vop enable intf:%x\n", intf);
}
@@ -10303,8 +10307,6 @@ static void vop2_crtc_atomic_enable(struct drm_crtc *crtc, struct drm_atomic_sta
vop3_mcu_mode_setup(crtc);
}
if (!vp->loader_protect)
vop2_clk_reset(vp->dclk_rst);
if (vcstate->dsc_enable)
rk3588_vop2_dsc_cfg_done(crtc);
drm_crtc_vblank_on(crtc);