From fdcec7349c51b02ecb2d1b1f81537cd2e7b83eb1 Mon Sep 17 00:00:00 2001 From: Zhang Yubing Date: Tue, 17 Dec 2024 11:10:42 +0800 Subject: [PATCH] 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 --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 050e9864a388..22ae57c407c3 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -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);