diff mbox series

[3/5] drm/msm/dsi: stop calling set_split_display

Message ID 20231009205727.2781802-4-dmitry.baryshkov@linaro.org
State Accepted
Commit 51c139615b33c0bab595d7faeb2d7b925f3fff04
Headers show
Series drm/msm/dsi: remove unused fields | expand

Commit Message

Dmitry Baryshkov Oct. 9, 2023, 8:57 p.m. UTC
Since the commit 8b03ad30e314 ("drm/msm/dsi: Use one connector for dual
DSI mode"), the second DSI host in the bonded pair will not be
associated with the encoder and will not get the bridges, thus making
condition in msm_dsi_manager_set_split_display() always false.

Technically that change broke bonded DSI support in the MDP5 driver. But
since nobody complained in the last 5.5 years, it seems that nobody
cares enough.

Drop the msm_dsi_manager_set_split_display() completely and stop calling
the set_split_display() KMS callback. Also remove the
msm_dsi::external_bridge field which was only used by the mentioned
function.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 drivers/gpu/drm/msm/dsi/dsi.h         |  5 ----
 drivers/gpu/drm/msm/dsi/dsi_manager.c | 35 ---------------------------
 2 files changed, 40 deletions(-)

Comments

Abhinav Kumar Jan. 10, 2024, 10:56 p.m. UTC | #1
On 10/9/2023 1:57 PM, Dmitry Baryshkov wrote:
> Since the commit 8b03ad30e314 ("drm/msm/dsi: Use one connector for dual
> DSI mode"), the second DSI host in the bonded pair will not be
> associated with the encoder and will not get the bridges, thus making
> condition in msm_dsi_manager_set_split_display() always false.
> 

You are referring to the other_dsi->external_bridge condition here right?

if (other_dsi && other_dsi->external_bridge && 
kms->funcs->set_split_display)


> Technically that change broke bonded DSI support in the MDP5 driver. But
> since nobody complained in the last 5.5 years, it seems that nobody
> cares enough.
> 

Unfortunate but true.

I dont have a problem with this unless someone wants to use split 
display with MDP5 and wants to fix this path.

> Drop the msm_dsi_manager_set_split_display() completely and stop calling
> the set_split_display() KMS callback. Also remove the
> msm_dsi::external_bridge field which was only used by the mentioned
> function.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
>   drivers/gpu/drm/msm/dsi/dsi.h         |  5 ----
>   drivers/gpu/drm/msm/dsi/dsi_manager.c | 35 ---------------------------
>   2 files changed, 40 deletions(-)
> 

Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/msm/dsi/dsi.h b/drivers/gpu/drm/msm/dsi/dsi.h
index b7edcb7b3ddc..525c7ba22227 100644
--- a/drivers/gpu/drm/msm/dsi/dsi.h
+++ b/drivers/gpu/drm/msm/dsi/dsi.h
@@ -38,11 +38,6 @@  struct msm_dsi {
 	struct mipi_dsi_host *host;
 	struct msm_dsi_phy *phy;
 
-	/*
-	 * external_bridge connected to dsi bridge output
-	 */
-	struct drm_bridge *external_bridge;
-
 	struct device *phy_dev;
 	bool phy_enabled;
 
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index af840a1e9fc0..8eb73287dffb 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -198,36 +198,6 @@  static int dsi_mgr_bridge_get_id(struct drm_bridge *bridge)
 	return dsi_bridge->id;
 }
 
-static void msm_dsi_manager_set_split_display(u8 id)
-{
-	struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id);
-	struct msm_dsi *other_dsi = dsi_mgr_get_other_dsi(id);
-	struct msm_drm_private *priv = msm_dsi->dev->dev_private;
-	struct msm_kms *kms = priv->kms;
-	struct msm_dsi *master_dsi, *slave_dsi;
-
-	if (IS_BONDED_DSI() && !IS_MASTER_DSI_LINK(id)) {
-		master_dsi = other_dsi;
-		slave_dsi = msm_dsi;
-	} else {
-		master_dsi = msm_dsi;
-		slave_dsi = other_dsi;
-	}
-
-	if (!msm_dsi->external_bridge || !IS_BONDED_DSI())
-		return;
-
-	/*
-	 * Set split display info to kms once bonded DSI panel is connected to
-	 * both hosts.
-	 */
-	if (other_dsi && other_dsi->external_bridge && kms->funcs->set_split_display) {
-		kms->funcs->set_split_display(kms, master_dsi->encoder,
-					      slave_dsi->encoder,
-					      msm_dsi_is_cmd_mode(msm_dsi));
-	}
-}
-
 static int dsi_mgr_bridge_power_on(struct drm_bridge *bridge)
 {
 	int id = dsi_mgr_bridge_get_id(bridge);
@@ -504,8 +474,6 @@  int msm_dsi_manager_ext_bridge_init(u8 id, struct drm_bridge *int_bridge)
 	if (IS_ERR(ext_bridge))
 		return PTR_ERR(ext_bridge);
 
-	msm_dsi->external_bridge = ext_bridge;
-
 	encoder = msm_dsi->encoder;
 
 	/*
@@ -538,9 +506,6 @@  int msm_dsi_manager_ext_bridge_init(u8 id, struct drm_bridge *int_bridge)
 			return ret;
 	}
 
-	/* The pipeline is ready, ping encoders if necessary */
-	msm_dsi_manager_set_split_display(id);
-
 	return 0;
 }