From 528ca6b886d66bd112fbf95688b253269cc912de Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Sat, 11 May 2024 14:57:47 +0800 Subject: [PATCH] drm/rockchip: rgb: deinit output_if and output_if_left_panel for rgb output If less this commit, RGB output will be enabled by mistake when rgb output is switched between different vp. Signed-off-by: Sandy Huang Change-Id: I673488ee63aeb18fb511f2d1d46672e83455a940 --- drivers/gpu/drm/rockchip/rockchip_rgb.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_rgb.c b/drivers/gpu/drm/rockchip/rockchip_rgb.c index 003dfc0bf949..abf1a63e04e7 100644 --- a/drivers/gpu/drm/rockchip/rockchip_rgb.c +++ b/drivers/gpu/drm/rockchip/rockchip_rgb.c @@ -242,6 +242,8 @@ static void rockchip_rgb_encoder_enable(struct drm_encoder *encoder) static void rockchip_rgb_encoder_disable(struct drm_encoder *encoder) { struct rockchip_rgb *rgb = encoder_to_rgb(encoder); + struct drm_crtc *crtc = encoder->crtc; + struct rockchip_crtc_state *s = to_rockchip_crtc_state(crtc->state); if (rgb->panel) { drm_panel_disable(rgb->panel); @@ -257,6 +259,7 @@ 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); } static int