From 09f85f2be6d4a00e5ddc400711e8e47d3d752f68 Mon Sep 17 00:00:00 2001 From: Damon Ding Date: Fri, 28 Jun 2024 20:54:42 +0800 Subject: [PATCH] drm/rockchip: rgb: clear output_if of rockchip_crtc_state if crtc active change Clear output_if of rockchip_crtc_state in rockchip_rgb_encoder_disable() only if active_changed flag of drm_crtc_state is true, otherwise the output_if related checks may be affected in .atomic_enable() of crtc. Change-Id: Id15873feebd420a77c8949ea6601b9f33c18188c Signed-off-by: Damon Ding --- drivers/gpu/drm/rockchip/rockchip_rgb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_rgb.c b/drivers/gpu/drm/rockchip/rockchip_rgb.c index d66d415bf746..78f7bc1f6d74 100644 --- a/drivers/gpu/drm/rockchip/rockchip_rgb.c +++ b/drivers/gpu/drm/rockchip/rockchip_rgb.c @@ -263,7 +263,9 @@ static void rockchip_rgb_encoder_disable(struct drm_encoder *encoder) rgb->funcs->disable(rgb); pinctrl_pm_select_sleep_state(rgb->dev); - s->output_if &= ~(VOP_OUTPUT_IF_RGB | VOP_OUTPUT_IF_BT656 | VOP_OUTPUT_IF_BT1120); + + if (crtc->state->active_changed) + s->output_if &= ~(VOP_OUTPUT_IF_RGB | VOP_OUTPUT_IF_BT656 | VOP_OUTPUT_IF_BT1120); } static int