On 8/12/24 18:04, Greg Kroah-Hartman wrote:
6.10-stable review patch. If anyone has any objections, please let me know.
This patch seems to cause problems with my external screens not getting a signal after my laptop wakes up from sleep.
The problem occurs on my Lenovo P14s Gen 2 (type 21A0) connected to a lenovo usb-c dock (type 40AS) with two 4k display port screens connected. My Laptop screen wakes up normally, the two external displays are still detected by my system and shown in the kde system settings, but they show no image.
The problem only occurs after putting my system to sleep, not on first boot.
I didn't do a full git bisect, I only tested the full rc and then a build a kernel with this patch reverted, reverting only this patch solved the problem.
~kevin
From: Wayne Lin wayne.lin@amd.com
commit 202dc359addab29451d3d18243c3d957da5392c8 upstream.
[Why] Like commit ec5fa9fcdeca ("drm/amd/display: Adjust the MST resume flow"), we want to avoid handling mst topology changes before restoring the old state. If we enable DP_UP_REQ_EN before calling drm_atomic_helper_resume(), have changce to handle CSN event first and fire hotplug event before restoring the cached state.
[How] Disable mst branch sending up request event before we restoring the cached state. DP_UP_REQ_EN will be set later when we call drm_dp_mst_topology_mgr_resume().
Cc: Mario Limonciello mario.limonciello@amd.com Cc: Alex Deucher alexander.deucher@amd.com Cc: stable@vger.kernel.org Reviewed-by: Hersen Wu hersenxs.wu@amd.com Signed-off-by: Wayne Lin wayne.lin@amd.com Tested-by: Daniel Wheeler daniel.wheeler@amd.com Signed-off-by: Alex Deucher alexander.deucher@amd.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 1 - 1 file changed, 1 deletion(-)
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -2418,7 +2418,6 @@ static void resume_mst_branch_status(str ret = drm_dp_dpcd_writeb(mgr->aux, DP_MSTM_CTRL, DP_MST_EN |
if (ret < 0) { drm_dbg_kms(mgr->dev, "mst write failed - undocked during suspend?\n");DP_UP_REQ_EN | DP_UPSTREAM_IS_SRC);