On 2021-10-05 03:51, Wayne Lin wrote: > From: Jimmy Kizito <Jimmy.Kizito@xxxxxxx> > > [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 > Suggested title: "Train DPIA links with fallback" Harry > Reviewed-by: Jun Lei <Jun.Lei@xxxxxxx> > Acked-by: Wayne Lin <Wayne.Lin@xxxxxxx> > Acked-by: Nicholas Kazlauskas <nicholas.kazlauskas@xxxxxxx> > Signed-off-by: Jimmy Kizito <Jimmy.Kizito@xxxxxxx> > --- > 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, ¤t_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, > + ¤t_setting, > skip_video_pattern); > else > status = dc_link_dp_perform_link_training(link, >