From ff6f7a123929fea5fbb96baca9e24e3fbd695ffc Mon Sep 17 00:00:00 2001 From: Zhang Yubing Date: Fri, 4 Aug 2023 09:36:58 +0800 Subject: [PATCH] drm/rockchip: dsi2: support disable hold mode in cmd mode when dsi controller work in cmd mode, it will tell vop work in hold mode and must config te signal for vop. when rk3588 dsi interface connect to rkx111 and work in cmd mode, rkx111 will not provided a te signal, so it need disable hold mode and transfer this config to vop. Signed-off-by: Zhang Yubing Change-Id: I2044ee882bee4be896dc65b9fcf6d502d56661df --- drivers/gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c index 46ace54ebab8..05f38f14c0b8 100644 --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c @@ -246,6 +246,7 @@ struct dw_mipi_dsi2 { struct phy *dcphy; union phy_configure_opts phy_opts; + bool disable_hold_mode; bool c_option; bool scrambling_en; unsigned int slice_width; @@ -954,7 +955,7 @@ dw_mipi_dsi2_encoder_atomic_check(struct drm_encoder *encoder, if (!(dsi2->mode_flags & MIPI_DSI_MODE_VIDEO)) { s->output_flags |= ROCKCHIP_OUTPUT_MIPI_DS_MODE; s->soft_te = dsi2->te_gpio ? true : false; - s->hold_mode = true; + s->hold_mode = dsi2->disable_hold_mode ? false : true; } if (dsi2->slave) { @@ -1639,6 +1640,9 @@ static int dw_mipi_dsi2_probe(struct platform_device *pdev) dsi2->pdata = of_device_get_match_data(dev); platform_set_drvdata(pdev, dsi2); + if (device_property_read_bool(dev, "disable-hold-mode")) + dsi2->disable_hold_mode = true; + if (device_property_read_bool(dev, "dual-connector-split")) { dsi2->dual_connector_split = true;