diff options
author | Wenjing Liu <wenjing.liu@amd.com> | 2021-05-03 17:05:40 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2021-05-19 22:39:08 -0400 |
commit | 4c247f8c57f3bde6cde98f180a2b8b559da47bee (patch) | |
tree | 3ca2e064e650373200bfe2cb0a240d7f3544a642 /drivers/gpu/drm/amd/display | |
parent | 55bac4a77a86690402dc9462455438c84783394f (diff) | |
download | linux-4c247f8c57f3bde6cde98f180a2b8b559da47bee.tar.gz linux-4c247f8c57f3bde6cde98f180a2b8b559da47bee.tar.bz2 linux-4c247f8c57f3bde6cde98f180a2b8b559da47bee.zip |
drm/amd/display: decide link training settings based on channel coding
[how]
Rename initialize_training_settings to decide_training_settings.
Call get link encoding format and decide training settings
based on current channel coding.
Signed-off-by: Wenjing Liu <wenjing.liu@amd.com>
Reviewed-by: George Shen <George.Shen@amd.com>
Acked-by: Stylon Wang <stylon.wang@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display')
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 19 |
1 files changed, 15 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 b3b9b738e714..4c142e26bc03 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 @@ -1231,7 +1231,7 @@ enum link_training_result dp_check_link_loss_status( return status; } -static void initialize_training_settings( +static inline void decide_8b_10b_training_settings( struct dc_link *link, const struct dc_link_settings *link_setting, const struct dc_link_training_overrides *overrides, @@ -1327,6 +1327,17 @@ static void initialize_training_settings( lt_settings->enhanced_framing = 1; } +static void decide_training_settings( + struct dc_link *link, + const struct dc_link_settings *link_settings, + const struct dc_link_training_overrides *overrides, + struct link_training_settings *lt_settings) +{ + if (dp_get_link_encoding_format(link_settings) == DP_8b_10b_ENCODING) + decide_8b_10b_training_settings(link, link_settings, overrides, lt_settings); +} + + uint8_t dp_convert_to_count(uint8_t lttpr_repeater_count) { switch (lttpr_repeater_count) { @@ -1542,7 +1553,7 @@ bool dc_link_dp_perform_link_training_skip_aux( { struct link_training_settings lt_settings; - initialize_training_settings( + decide_training_settings( link, link_setting, &link->preferred_training_settings, @@ -1592,7 +1603,7 @@ enum link_training_result dc_link_dp_perform_link_training( uint8_t repeater_cnt; uint8_t repeater_id; - initialize_training_settings( + decide_training_settings( link, link_setting, &link->preferred_training_settings, @@ -1877,7 +1888,7 @@ enum link_training_result dc_link_dp_sync_lt_attempt( enum clock_source_id dp_cs_id = CLOCK_SOURCE_ID_EXTERNAL; bool fec_enable = false; - initialize_training_settings( + decide_training_settings( link, link_settings, lt_overrides, |