From: David Galiffi Date: Thu, 11 Mar 2021 23:13:12 +0000 (-0500) Subject: drm/amd/display: Fixed Clock Recovery Sequence X-Git-Tag: io_uring-5.13-2021-05-07~38^2~3^2~162 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=3d223c5528a387f84ed8bdbed2ce05227be9afe0;p=linux-2.6-block.git drm/amd/display: Fixed Clock Recovery Sequence [Why] When performing clock recovery, if a pre-emphasis adjustment is requested, but voltage swing remains constant, the the retry counter will not be reset. This can lead to prematurely failing link training. [How] Reset the clock recovery retry counter if an adjustment is requested for either voltage swing or pre-emphasis. Tested-by: Daniel Wheeler Signed-off-by: Calvin Hou Signed-off-by: David Galiffi Reviewed-by: Jun Lei Acked-by: Solomon Chiu Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c index 47e6c33f73cb..484d96f78ade 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c @@ -1098,11 +1098,13 @@ static enum link_training_result perform_clock_recovery_sequence( if (is_max_vs_reached(lt_settings)) break; - /* 7. same voltage*/ - /* Note: VS same for all lanes, - * so comparing first lane is sufficient*/ - if (lt_settings->lane_settings[0].VOLTAGE_SWING == + /* 7. same lane settings*/ + /* Note: settings are the same for all lanes, + * so comparing first lane is sufficient*/ + if ((lt_settings->lane_settings[0].VOLTAGE_SWING == req_settings.lane_settings[0].VOLTAGE_SWING) + && (lt_settings->lane_settings[0].PRE_EMPHASIS == + req_settings.lane_settings[0].PRE_EMPHASIS)) retries_cr++; else retries_cr = 0;