From 230ee551c92ca086d1f98c8b013b728b36389e30 Mon Sep 17 00:00:00 2001 From: Lei Chen Date: Fri, 11 Mar 2022 11:32:40 +0800 Subject: [PATCH] drm/rockchip: dsi2: fix support dynamic binding to different vp port Fixed VOP_OUTPUT_IF_MIPI being turned off when switching resolution Signed-off-by: Lei Chen Change-Id: I4f432a7d352578baa9351e2f859afd67b4ea0152 --- drivers/gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c index ab98659ea97e..f30ca4dfcd31 100644 --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c @@ -448,8 +448,6 @@ static void dw_mipi_dsi2_encoder_disable(struct drm_encoder *encoder) struct drm_crtc *crtc = encoder->crtc; struct rockchip_crtc_state *s = to_rockchip_crtc_state(crtc->state); - s->output_if &= ~(dsi2->id ? VOP_OUTPUT_IF_MIPI1 : VOP_OUTPUT_IF_MIPI0); - if (dsi2->panel) drm_panel_disable(dsi2->panel); @@ -465,6 +463,11 @@ static void dw_mipi_dsi2_encoder_disable(struct drm_encoder *encoder) drm_panel_unprepare(dsi2->panel); dw_mipi_dsi2_post_disable(dsi2); + + if (!crtc->state->active_changed) + return; + + s->output_if &= ~(dsi2->id ? VOP_OUTPUT_IF_MIPI1 : VOP_OUTPUT_IF_MIPI0); } static void dw_mipi_dsi2_set_lane_rate(struct dw_mipi_dsi2 *dsi2)