[PATCH v5 14/25] drm/msm/dp: Mark the SST bridge disconnected when mst is active
From: Yongxing Mou
Date: Mon Jun 29 2026 - 09:31:54 EST
From: Abhinav Kumar <quic_abhinavk@xxxxxxxxxxx>
The bridge detect function is only applicable for SST. In MST mode,
connector detection is handled by MST bridges. Skips detection for the
SST bridge when MST is active.
Signed-off-by: Abhinav Kumar <quic_abhinavk@xxxxxxxxxxx>
Signed-off-by: Yongxing Mou <yongxing.mou@xxxxxxxxxxxxxxxx>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx>
---
drivers/gpu/drm/msm/dp/dp_display.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
index d0081ea9f5cd..5786e598a406 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -910,6 +910,9 @@ enum drm_connector_status msm_dp_bridge_detect(struct drm_bridge *bridge,
priv = container_of(dp, struct msm_dp_display_private, msm_dp_display);
+ if (dp->mst_active)
+ return status;
+
guard(mutex)(&priv->plugged_lock);
ret = pm_runtime_resume_and_get(&dp->pdev->dev);
if (ret) {
@@ -955,6 +958,10 @@ enum drm_connector_status msm_dp_bridge_detect(struct drm_bridge *bridge,
status = connector_status_disconnected;
}
+ /* skip for MST */
+ if (priv->max_stream > 1 && drm_dp_read_mst_cap(priv->aux, dpcd))
+ status = connector_status_disconnected;
+
end:
/*
* If we detected the DPRX, leave the controller on so that it doesn't
--
2.43.0