From ac087a3cabb5c8abf1ce19d31bb3ede9f37fe7a4 Mon Sep 17 00:00:00 2001 From: Algea Cao Date: Thu, 9 May 2024 16:42:11 +0800 Subject: [PATCH] drm/rockchip: vop2: Fix sharp was disabled by mistake When vp0 and other VPs are enabled at the same time, it is necessary to restrict only vp0 to operate sharp registers, otherwise sharp will be turned off by mistake. Change-Id: I81778262a1b669a2f4b15963cb544849a96e89cf Signed-off-by: Algea Cao --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 24f62b5124ed..f81dcbe36f39 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -11543,6 +11543,8 @@ static void vop2_crtc_atomic_flush(struct drm_crtc *crtc, struct drm_atomic_stat struct drm_atomic_state *old_state = old_cstate->state; struct vop2_video_port *vp = to_vop2_video_port(crtc); struct vop2 *vop2 = vp->vop2; + const struct vop2_data *vop2_data = vop2->data; + const struct vop2_video_port_data *vp_data = &vop2_data->vp[vp->id]; struct drm_plane_state *old_pstate; struct drm_plane *plane; unsigned long flags; @@ -11614,7 +11616,8 @@ static void vop2_crtc_atomic_flush(struct drm_crtc *crtc, struct drm_atomic_stat VOP_MODULE_SET(vop2, vp, cubic_lut_update_en, 0); } - vop2_post_sharp_config(crtc); + if (vp_data->feature & VOP_FEATURE_POST_SHARP) + vop2_post_sharp_config(crtc); if (vcstate->line_flag) vop2_crtc_enable_line_flag_event(crtc, vcstate->line_flag);