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

[Why & How]
Add codes for commit "822536713066 drm/amd/display: Add fallback
and abort paths for DP link training" to support USB4 DP tunneling
feature

Reviewed-by: Jun Lei <jun....@amd.com>
Acked-by: Wayne Lin <wayne....@amd.com>
Acked-by: Nicholas Kazlauskas <nicholas.kazlaus...@amd.com>
Signed-off-by: Jimmy Kizito <jimmy.kiz...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c    | 6 ++++++
 drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 4 ++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c 
b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
index 1c397d5551ba..6b5ddf0a29c1 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -1862,6 +1862,12 @@ static enum dc_status enable_link_dp(struct dc_state 
*state,
        /* get link settings for video mode timing */
        decide_link_settings(stream, &link_settings);
 
+       /* Train with fallback when enabling DPIA link. Conventional links are
+        * trained with fallback during sink detection.
+        */
+       if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
+               do_fallback = true;
+
 #if defined(CONFIG_DRM_AMD_DC_DCN)
        if (dp_get_link_encoding_format(&link_settings) == 
DP_128b_132b_ENCODING &&
                        pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT) {
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 dd1d0262ba40..d7dddc0998db 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
@@ -2408,9 +2408,9 @@ bool perform_link_training_with_retries(
                        dc_link_dp_perform_link_training_skip_aux(link, 
&current_setting);
                        return true;
                } else {
-                       if (link->is_dig_mapping_flexible)
+                       if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
                                status = 
dc_link_dpia_perform_link_training(link,
-                                                                           
link_setting,
+                                                                           
&current_setting,
                                                                            
skip_video_pattern);
                        else
                                status = dc_link_dp_perform_link_training(link,
-- 
2.25.1

Reply via email to