From 0294e1dd47e242d58e815adc9916df03f42b475e Mon Sep 17 00:00:00 2001 From: Harry Wentland Date: Wed, 13 Jan 2016 22:44:36 -0500 Subject: [PATCH 0706/1110] drm/amd/dal: Reset DP_MSE_SAT when disabling MST display SST display doesn't reliably light up when DP_MSE_SAT registers are set. Make sure we clear those when disabling an MST display. Signed-off-by: Harry Wentland Acked-by: Harry Wentland --- drivers/gpu/drm/amd/dal/dc/core/dc_link.c | 20 ++++++++++++-------- drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c | 6 ++++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c index 46132f2..c8419a8 100644 --- a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c +++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c @@ -1416,6 +1416,7 @@ static enum dc_status deallocate_mst_payload(struct core_stream *stream) struct fixed31_32 avg_time_slots_per_mtp = dal_fixed31_32_from_int(0); struct dc *dc = stream->ctx->dc; uint8_t i; + bool mst_mode = (link->public.type == dc_connection_mst_branch); /* deallocate_mst_payload is called before disable link. When mode or * disable/enable monitor, new stream is created which is not in link @@ -1430,12 +1431,13 @@ static enum dc_status deallocate_mst_payload(struct core_stream *stream) avg_time_slots_per_mtp); /* TODO: which component is responsible for remove payload table? */ - dc_helpers_dp_mst_write_payload_allocation_table( - stream->ctx, - &stream->public, - &link->stream_alloc_table, - &proposed_table, - false); + if (mst_mode) + dc_helpers_dp_mst_write_payload_allocation_table( + stream->ctx, + &stream->public, + &link->stream_alloc_table, + &proposed_table, + false); dal_logger_write(link->ctx->logger, LOG_MAJOR_MST, @@ -1466,14 +1468,16 @@ static enum dc_status deallocate_mst_payload(struct core_stream *stream) link->stream_alloc_table = proposed_table; - dc_helpers_dp_mst_poll_for_allocation_change_trigger( + if (mst_mode) { + dc_helpers_dp_mst_poll_for_allocation_change_trigger( stream->ctx, &stream->public); - dc_helpers_dp_mst_send_payload_allocation( + dc_helpers_dp_mst_send_payload_allocation( stream->ctx, &stream->public, false); + } return DC_OK; } diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c index eaea78e..c4cbede 100644 --- a/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c +++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c @@ -989,10 +989,12 @@ static bool perform_clock_recovery_sequence( dal_logger_write(link->ctx->logger, LOG_MAJOR_MST, LOG_MINOR_MST_PROGRAMMING, - "Link training for %d lanes at %s rate %s\n", + "Link training for %d lanes at %s rate %s with PE %d, VS %d\n", lt_settings.link_settings.lane_count, link_rate, - status ? "succeeded" : "failed"); + status ? "succeeded" : "failed", + lt_settings.lane_settings[0].PRE_EMPHASIS, + lt_settings.lane_settings[0].VOLTAGE_SWING); return status; } -- 2.7.4