From: Jimmy Kizito <jimmy.kiz...@amd.com>

[Why]
Link training should fail if stream bandwidth exceeds link bandwidth.

[How]
Correct fallback logic and use named variables to make intention clear.

Reviewed-by: Meenakshikumar Somasundaram <meenakshikumar.somasunda...@amd.com>
Reviewed-by: Jun Lei <jun....@amd.com>
Acked-by: Rodrigo Siqueira <rodrigo.sique...@amd.com>
Signed-off-by: Jimmy Kizito <jimmy.kiz...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

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 ac4896ff912c..c96a8694236e 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
@@ -2441,12 +2441,16 @@ bool perform_link_training_with_retries(
                        if (type == dc_connection_none)
                                break;
                } else if (do_fallback) {
+                       uint32_t req_bw;
+                       uint32_t link_bw;
+
                        decide_fallback_link_setting(*link_setting, 
&current_setting, status);
                        /* Fail link training if reduced link bandwidth no 
longer meets
                         * stream requirements.
                         */
-                       if (dc_bandwidth_in_kbps_from_timing(&stream->timing) <
-                                       dc_link_bandwidth_kbps(link, 
&current_setting))
+                       req_bw = 
dc_bandwidth_in_kbps_from_timing(&stream->timing);
+                       link_bw = dc_link_bandwidth_kbps(link, 
&current_setting);
+                       if (req_bw > link_bw)
                                break;
                }
 
-- 
2.25.1

Reply via email to