summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
diff options
context:
space:
mode:
authorJimmy Kizito <Jimmy.Kizito@amd.com>2021-01-06 15:21:11 -0500
committerAlex Deucher <alexander.deucher@amd.com>2021-10-06 15:51:17 -0400
commit76724b76739a4fd751298deb281a878dfe72ae48 (patch)
tree38e42a141b183031d88b51f758ef2769df0edf04 /drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
parent698d0a6fb7bb9583b02c0ab50cc0dd33d39c9226 (diff)
drm/amd/display: Stub out DPIA link training call
[why & how] Add stub for DPIA link training and define new DPIA DMUB commands to support it. Reviewed-by: Jun Lei <Jun.Lei@amd.com> Acked-by: Wayne Lin <Wayne.Lin@amd.com> Acked-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Jimmy Kizito <Jimmy.Kizito@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c')
-rw-r--r--drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c30
1 files changed, 26 insertions, 4 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 758255eabaa4..b576373db9ac 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
@@ -2310,6 +2310,23 @@ enum link_training_result dc_link_dp_perform_link_training(
return status;
}
+/*
+ * Train DP tunneling link for USB4 DPIA display endpoint.
+ *
+ * DPIA equivalent of dc_link_dp_perfrorm_link_training.
+ */
+enum link_training_result dc_link_dpia_perform_link_training(struct dc_link *link,
+ const struct dc_link_settings *link_setting,
+ bool skip_video_pattern)
+{
+ enum link_training_result status;
+
+ /** @todo Always fail until USB4 DPIA training implemented. */
+ status = LINK_TRAINING_CR_FAIL_LANE0;
+
+ return status;
+}
+
bool perform_link_training_with_retries(
const struct dc_link_settings *link_setting,
bool skip_video_pattern,
@@ -2381,10 +2398,15 @@ bool perform_link_training_with_retries(
dc_link_dp_perform_link_training_skip_aux(link, &current_setting);
return true;
} else {
- status = dc_link_dp_perform_link_training(
- link,
- &current_setting,
- skip_video_pattern);
+ if (link->is_dig_mapping_flexible)
+ status = dc_link_dpia_perform_link_training(link,
+ link_setting,
+ skip_video_pattern);
+ else
+ status = dc_link_dp_perform_link_training(link,
+ &current_setting,
+ skip_video_pattern);
+
if (status == LINK_TRAINING_SUCCESS)
return true;
}