Skip to content

Commit

Permalink
drm/amd/display: Fix DP PHY test pre-emphasis not set properly
Browse files Browse the repository at this point in the history
Signed-off-by: Hersen Wu <hersenxs.wu@amd.com>
Reviewed-by: Hersen Wu <hersenxs.wu@amd.com>
Acked-by: Harry Wentland <Harry.Wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
  • Loading branch information
Hersen Wu authored and Alex Deucher committed Jan 5, 2017
1 parent 95772e9 commit 94a68d3
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 10 deletions.
15 changes: 11 additions & 4 deletions drivers/gpu/drm/amd/display/dc/core/dc.c
Original file line number Diff line number Diff line change
Expand Up @@ -332,14 +332,21 @@ static bool setup_psr(struct dc *dc, const struct dc_stream *stream)
}

static void set_drive_settings(struct dc *dc,
struct link_training_settings *lt_settings)
struct link_training_settings *lt_settings,
const struct dc_link *link)
{
struct core_dc *core_dc = DC_TO_CORE(dc);
int i;

for (i = 0; i < core_dc->link_count; i++)
dc_link_dp_set_drive_settings(&core_dc->links[i]->public,
lt_settings);
for (i = 0; i < core_dc->link_count; i++) {
if (&core_dc->links[i]->public == link)
break;
}

if (i >= core_dc->link_count)
ASSERT_CRITICAL(false);

dc_link_dp_set_drive_settings(&core_dc->links[i]->public, lt_settings);
}

static void perform_link_training(struct dc *dc,
Expand Down
9 changes: 5 additions & 4 deletions drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c
Original file line number Diff line number Diff line change
Expand Up @@ -229,10 +229,9 @@ void dp_retrain_link_dp_test(struct core_link *link,
link->link_enc,
SIGNAL_TYPE_DISPLAY_PORT);

/* Clear current link setting.
* memset(&link->public.cur_link_settings, 0,
* sizeof(link->public.cur_link_settings));
*/
/* Clear current link setting. */
memset(&link->public.cur_link_settings, 0,
sizeof(link->public.cur_link_settings));

link->link_enc->funcs->enable_dp_output(
link->link_enc,
Expand All @@ -246,6 +245,8 @@ void dp_retrain_link_dp_test(struct core_link *link,
link_setting,
skip_video_pattern);

link->public.cur_link_settings = *link_setting;

link->dc->hwss.unblank_stream(&pipes[i],
link_setting);
}
Expand Down
3 changes: 2 additions & 1 deletion drivers/gpu/drm/amd/display/dc/dc.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,8 @@ struct link_training_settings;

struct dc_link_funcs {
void (*set_drive_settings)(struct dc *dc,
struct link_training_settings *lt_settings);
struct link_training_settings *lt_settings,
const struct dc_link *link);
void (*perform_link_training)(struct dc *dc,
struct dc_link_settings *link_setting,
bool skip_video_pattern);
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/amd/display/dc/dce/dce_link_encoder.c
Original file line number Diff line number Diff line change
Expand Up @@ -1363,7 +1363,7 @@ void dce110_link_encoder_dp_set_lane_settings(
cntl.pixel_clock = link_settings->link_settings.link_rate *
LINK_RATE_REF_FREQ_IN_KHZ;

for (lane = 0; lane < link_settings->link_settings.lane_count; ++lane) {
for (lane = 0; lane < link_settings->link_settings.lane_count; lane++) {
/* translate lane settings */

training_lane_set.bits.VOLTAGE_SWING_SET =
Expand Down

0 comments on commit 94a68d3

Please sign in to comment.