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