Skip to content

Commit 6a7fde4

Browse files
George Shenalexdeucher
authored andcommitted
drm/amd/display: Update CR AUX RD interval interpretation
[Why] DP spec updated to have the CR AUX RD interval match the EQ AUX RD interval interpretation of DPCD 0000Eh/0220Eh for 8b/10b non-LTTPR mode and LTTPR transparent mode cases. [How] Update interpretation of DPCD 0000Eh/0220Eh for CR AUX RD interval during 8b/10b link training. Reviewed-by: Michael Strauss <michael.strauss@amd.com> Reviewed-by: Wenjing Liu <wenjing.liu@amd.com> Signed-off-by: George Shen <george.shen@amd.com> Signed-off-by: Zaeem Mohamed <zaeem.mohamed@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent d8c782c commit 6a7fde4

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_8b_10b.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
link->ctx->logger
3737

3838
static int32_t get_cr_training_aux_rd_interval(struct dc_link *link,
39-
const struct dc_link_settings *link_settings)
39+
const struct dc_link_settings *link_settings,
40+
enum lttpr_mode lttpr_mode)
4041
{
4142
union training_aux_rd_interval training_rd_interval;
4243
uint32_t wait_in_micro_secs = 100;
@@ -49,6 +50,8 @@ static int32_t get_cr_training_aux_rd_interval(struct dc_link *link,
4950
DP_TRAINING_AUX_RD_INTERVAL,
5051
(uint8_t *)&training_rd_interval,
5152
sizeof(training_rd_interval));
53+
if (lttpr_mode != LTTPR_MODE_NON_TRANSPARENT)
54+
wait_in_micro_secs = 400;
5255
if (training_rd_interval.bits.TRAINIG_AUX_RD_INTERVAL)
5356
wait_in_micro_secs = training_rd_interval.bits.TRAINIG_AUX_RD_INTERVAL * 4000;
5457
}
@@ -110,7 +113,6 @@ void decide_8b_10b_training_settings(
110113
*/
111114
lt_settings->link_settings.link_spread = link->dp_ss_off ?
112115
LINK_SPREAD_DISABLED : LINK_SPREAD_05_DOWNSPREAD_30KHZ;
113-
lt_settings->cr_pattern_time = get_cr_training_aux_rd_interval(link, link_setting);
114116
lt_settings->eq_pattern_time = get_eq_training_aux_rd_interval(link, link_setting);
115117
lt_settings->pattern_for_cr = decide_cr_training_pattern(link_setting);
116118
lt_settings->pattern_for_eq = decide_eq_training_pattern(link, link_setting);
@@ -119,6 +121,7 @@ void decide_8b_10b_training_settings(
119121
lt_settings->disallow_per_lane_settings = true;
120122
lt_settings->always_match_dpcd_with_hw_lane_settings = true;
121123
lt_settings->lttpr_mode = dp_decide_8b_10b_lttpr_mode(link);
124+
lt_settings->cr_pattern_time = get_cr_training_aux_rd_interval(link, link_setting, lt_settings->lttpr_mode);
122125
dp_hw_to_dpcd_lane_settings(lt_settings, lt_settings->hw_lane_settings, lt_settings->dpcd_lane_settings);
123126
}
124127

0 commit comments

Comments
 (0)