drm/rockchip: dsi2: support dynamic binding to different vp port

To solve the problem that the flag bits of other interfaces are
overwritten after mipi is enabled in the co-display case

Signed-off-by: Lei Chen <lei.chen@rock-chips.com>
Change-Id: I9eeea20165cb43da38879456eb10f6253e60bccb
This commit is contained in:
Lei Chen
2022-03-02 15:29:53 +08:00
committed by Tao Huang
parent 3ed5fc75ab
commit 23fa752f6a

View File

@@ -443,6 +443,10 @@ static void dw_mipi_dsi2_post_disable(struct dw_mipi_dsi2 *dsi2)
static void dw_mipi_dsi2_encoder_disable(struct drm_encoder *encoder)
{
struct dw_mipi_dsi2 *dsi2 = encoder_to_dsi2(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);
@@ -873,7 +877,7 @@ dw_mipi_dsi2_encoder_atomic_check(struct drm_encoder *encoder,
s->bus_format = MEDIA_BUS_FMT_RGB888_1X24;
s->output_type = DRM_MODE_CONNECTOR_DSI;
s->output_if = dsi2->id ? VOP_OUTPUT_IF_MIPI1 : VOP_OUTPUT_IF_MIPI0;
s->output_if |= dsi2->id ? VOP_OUTPUT_IF_MIPI1 : VOP_OUTPUT_IF_MIPI0;
s->bus_flags = info->bus_flags;
s->tv_state = &conn_state->tv;