Commit e3369714 authored by Wayne Lin's avatar Wayne Lin Committed by Alex Deucher

drm/amd/display: Solve mst monitors blank out problem after resume

[Why]
In dm resume, we firstly restore dc state and do the mst resume for topology
probing thereafter. If we change dpcd DP_MSTM_CTRL value after LT in mst reume,
it will cause light up problem on the hub.

[How]
Revert commit 202dc359 ("drm/amd/display: Defer handling mst up request in resume").
And adjust the reason to trigger dc_link_detect by DETECT_REASON_RESUMEFROMS3S4.

Cc: stable@vger.kernel.org
Fixes: 202dc359 ("drm/amd/display: Defer handling mst up request in resume")
Signed-off-by: default avatarWayne Lin <Wayne.Lin@amd.com>
Reviewed-by: default avatarFangzhi Zuo <jerry.zuo@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 320debca
...@@ -2583,6 +2583,7 @@ static void resume_mst_branch_status(struct drm_dp_mst_topology_mgr *mgr) ...@@ -2583,6 +2583,7 @@ static void resume_mst_branch_status(struct drm_dp_mst_topology_mgr *mgr)
ret = drm_dp_dpcd_writeb(mgr->aux, DP_MSTM_CTRL, ret = drm_dp_dpcd_writeb(mgr->aux, DP_MSTM_CTRL,
DP_MST_EN | DP_MST_EN |
DP_UP_REQ_EN |
DP_UPSTREAM_IS_SRC); DP_UPSTREAM_IS_SRC);
if (ret < 0) { if (ret < 0) {
drm_dbg_kms(mgr->dev, "mst write failed - undocked during suspend?\n"); drm_dbg_kms(mgr->dev, "mst write failed - undocked during suspend?\n");
...@@ -3186,7 +3187,7 @@ static int dm_resume(void *handle) ...@@ -3186,7 +3187,7 @@ static int dm_resume(void *handle)
} else { } else {
mutex_lock(&dm->dc_lock); mutex_lock(&dm->dc_lock);
dc_exit_ips_for_hw_access(dm->dc); dc_exit_ips_for_hw_access(dm->dc);
dc_link_detect(aconnector->dc_link, DETECT_REASON_HPD); dc_link_detect(aconnector->dc_link, DETECT_REASON_RESUMEFROMS3S4);
mutex_unlock(&dm->dc_lock); mutex_unlock(&dm->dc_lock);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment