From: Abhinav Kumar <[email protected]>

When a DP cable is already attached at boot, msm_dp_bridge_detect()
runs from the connector notify path before MST has been activated on
the sink. The DPCD capability read at that point already indicates
that the sink supports MST.

Return connector_status_disconnected from the SST bridge whenever the
controller supports multi-stream (stream_cnt > 1) and the sink reports
MST capability, so that connector detection is handled by MST
connectors instead of the SST bridge.

Signed-off-by: Abhinav Kumar <[email protected]>
Signed-off-by: Yongxing Mou <[email protected]>
---
 drivers/gpu/drm/msm/dp/dp_display.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/msm/dp/dp_display.c 
b/drivers/gpu/drm/msm/dp/dp_display.c
index e913ed91bbfd..0e8181932c27 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -1057,6 +1057,11 @@ enum drm_connector_status msm_dp_bridge_detect(struct 
drm_bridge *bridge,
                        status = connector_status_disconnected;
        }
 
+       /* Mark SST connector as disconnected in DP boot-up case */
+       if (msm_dp_ctrl_get_stream_cnt(priv->ctrl) > 1 &&
+           drm_dp_read_mst_cap(priv->aux, dpcd) == DRM_DP_MST)
+               status = connector_status_disconnected;
+
 end:
        /*
         * If we detected the DPRX, leave the controller on so that it doesn't

-- 
2.43.0

Reply via email to