On 7/13/2026 5:00 AM, Dmitry Baryshkov wrote:
On Mon, Jun 29, 2026 at 10:14:35PM +0800, Yongxing Mou wrote:
From: Abhinav Kumar <[email protected]>
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.
Please mention that it matches the state of other platforms.
Got it.
Signed-off-by: Abhinav Kumar <[email protected]>
Signed-off-by: Yongxing Mou <[email protected]>
Reviewed-by: Dmitry Baryshkov <[email protected]>
---
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;
Hmm, should it only be marked as disconnected after we switch to the MST
mode? When is the switch happening?
This condition is intended to handle the DP boot-up case, where detect()
runs before notify(), meaning mst_active is still false when we reach
this point. In the normal plug/unplug flow, notify() runs first.
I think this should be split into two patches. Adding this check only
makes sense once MST is actually functional; otherwise, it risks
breaking SST.
+
end:
/*
* If we detected the DPRX, leave the controller on so that it doesn't
--
2.43.0