Skip to content

Commit b6ef55c

Browse files
vstempenalexdeucher
authored andcommitted
drm/amd/display: DP training to set properly SCRAMBLING_DISABLE
[Why] DP training sequence to set SCRAMBLING_DISABLE bit properly based on training pattern - per DP Spec. [How] Update dpcd_pattern.v1_4.SCRAMBLING_DISABLE with 1 for TPS1, TPS2, TPS3, but not for TPS4. Signed-off-by: Vladimir Stempen <[email protected]> Reviewed-by: Wenjing Liu <[email protected]> Acked-by: Rodrigo Siqueira <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 5a3f610 commit b6ef55c

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,30 @@ static enum dpcd_training_patterns
220220
return dpcd_tr_pattern;
221221
}
222222

223+
static uint8_t dc_dp_initialize_scrambling_data_symbols(
224+
struct dc_link *link,
225+
enum dc_dp_training_pattern pattern)
226+
{
227+
uint8_t disable_scrabled_data_symbols = 0;
228+
229+
switch (pattern) {
230+
case DP_TRAINING_PATTERN_SEQUENCE_1:
231+
case DP_TRAINING_PATTERN_SEQUENCE_2:
232+
case DP_TRAINING_PATTERN_SEQUENCE_3:
233+
disable_scrabled_data_symbols = 1;
234+
break;
235+
case DP_TRAINING_PATTERN_SEQUENCE_4:
236+
disable_scrabled_data_symbols = 0;
237+
break;
238+
default:
239+
ASSERT(0);
240+
DC_LOG_HW_LINK_TRAINING("%s: Invalid HW Training pattern: %d\n",
241+
__func__, pattern);
242+
break;
243+
}
244+
return disable_scrabled_data_symbols;
245+
}
246+
223247
static inline bool is_repeater(struct dc_link *link, uint32_t offset)
224248
{
225249
return (!link->is_lttpr_mode_transparent && offset != 0);
@@ -252,6 +276,9 @@ static void dpcd_set_lt_pattern_and_lane_settings(
252276
dpcd_pattern.v1_4.TRAINING_PATTERN_SET =
253277
dc_dp_training_pattern_to_dpcd_training_pattern(link, pattern);
254278

279+
dpcd_pattern.v1_4.SCRAMBLING_DISABLE =
280+
dc_dp_initialize_scrambling_data_symbols(link, pattern);
281+
255282
dpcd_lt_buffer[DP_TRAINING_PATTERN_SET - DP_TRAINING_PATTERN_SET]
256283
= dpcd_pattern.raw;
257284

0 commit comments

Comments
 (0)