Re: [PATCH 6.10 257/263] drm/amd/display: Defer handling mst up request in resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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@xxxxxxx>

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@xxxxxxx>
Cc: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Reviewed-by: Hersen Wu <hersenxs.wu@xxxxxxx>
Signed-off-by: Wayne Lin <wayne.lin@xxxxxxx>
Tested-by: Daniel Wheeler <daniel.wheeler@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
  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 |
-				 DP_UP_REQ_EN |
  				 DP_UPSTREAM_IS_SRC);
  	if (ret < 0) {
  		drm_dbg_kms(mgr->dev, "mst write failed - undocked during suspend?\n");








[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux