A commit went into 6.3 that helps adjust the timing for resume of some monitors behind MST hubs.
This commit was done on top of a restructuring that happened in 6.3, but the existing old function names work as well for this issue.
Hand modify the code to use the old function names in 6.2.y and 6.1.y to help this issue.
Ryan Lin (1): drm/amd/display: Ext displays with dock can't recognized after resume
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 9 +++++++++ 1 file changed, 9 insertions(+)
From: Ryan Lin tsung-hua.lin@amd.com
[Why] Needs to set the default value of the LTTPR timeout after resume.
[How] Set the default (3.2ms) timeout at resuming if the sink supports LTTPR
Reviewed-by: Jerry Zuo Jerry.Zuo@amd.com Acked-by: Qingqing Zhuo qingqing.zhuo@amd.com Signed-off-by: Ryan Lin tsung-hua.lin@amd.com Tested-by: Daniel Wheeler daniel.wheeler@amd.com Signed-off-by: Alex Deucher alexander.deucher@amd.com (cherry picked from commit 01a18aa309aec12461fb5e6aecb76f8b33810658) Hand modified for missing changes in older kernels including rename of dc_link_aux_try_to_configure_timeout() Signed-off-by: Mario Limonciello mario.limonciello@amd.com (cherry picked from commit 5895ee73fc6b3d507b8ce42763df086acf43d26b) --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 6c5ea99223ba..c5ee63862b01 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -39,6 +39,7 @@ #include "dc/dc_edid_parser.h" #include "dc/dc_stat.h" #include "amdgpu_dm_trace.h" +#include "dc/inc/dc_link_ddc.h"
#include "vid.h" #include "amdgpu.h" @@ -2253,6 +2254,14 @@ static void s3_handle_mst(struct drm_device *dev, bool suspend) if (suspend) { drm_dp_mst_topology_mgr_suspend(mgr); } else { + /* if extended timeout is supported in hardware, + * default to LTTPR timeout (3.2ms) first as a W/A for DP link layer + * CTS 4.2.1.1 regression introduced by CTS specs requirement update. + */ + dc_link_aux_try_to_configure_timeout(aconnector->dc_link->ddc, LINK_AUX_DEFAULT_LTTPR_TIMEOUT_PERIOD); + if (!dp_is_lttpr_present(aconnector->dc_link)) + dc_link_aux_try_to_configure_timeout(aconnector->dc_link->ddc, LINK_AUX_DEFAULT_TIMEOUT_PERIOD); + ret = drm_dp_mst_topology_mgr_resume(mgr, true); if (ret < 0) { dm_helpers_dp_mst_stop_top_mgr(aconnector->dc_link->ctx,
On Tue, May 09, 2023 at 11:01:20AM -0500, Mario Limonciello wrote:
From: Ryan Lin tsung-hua.lin@amd.com
[Why] Needs to set the default value of the LTTPR timeout after resume.
[How] Set the default (3.2ms) timeout at resuming if the sink supports LTTPR
Reviewed-by: Jerry Zuo Jerry.Zuo@amd.com Acked-by: Qingqing Zhuo qingqing.zhuo@amd.com Signed-off-by: Ryan Lin tsung-hua.lin@amd.com Tested-by: Daniel Wheeler daniel.wheeler@amd.com Signed-off-by: Alex Deucher alexander.deucher@amd.com (cherry picked from commit 01a18aa309aec12461fb5e6aecb76f8b33810658) Hand modified for missing changes in older kernels including rename of dc_link_aux_try_to_configure_timeout() Signed-off-by: Mario Limonciello mario.limonciello@amd.com (cherry picked from commit 5895ee73fc6b3d507b8ce42763df086acf43d26b)
Queued up, thanks!
linux-stable-mirror@lists.linaro.org