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
