Commit 9cc032b2 authored by Martin Tsai's avatar Martin Tsai Committed by Alex Deucher

drm/amd/display: Poll pending DOWN_REP before enabling the link

[Why]
With special monitor combination on MST, the UP_REQ could come
after clear payload table. It makes the pending DOWN_REP fail
to be handled after link training and the new DOWN_REQ will be queued
until time out .

[How]
To move the current polling pending DOWN_REP procedure to after
clear payload table to make sure the pending DOWN_REP can be
done before enabling the link.
Signed-off-by: default avatarMartin Tsai <martin.tsai@amd.com>
Reviewed-by: default avatarTony Cheng <Tony.Cheng@amd.com>
Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 55c374e9
...@@ -264,7 +264,7 @@ bool dm_helpers_dp_mst_write_payload_allocation_table( ...@@ -264,7 +264,7 @@ bool dm_helpers_dp_mst_write_payload_allocation_table(
} }
/* /*
* poll pending down reply before clear payload allocation table * poll pending down reply
*/ */
void dm_helpers_dp_mst_poll_pending_down_reply( void dm_helpers_dp_mst_poll_pending_down_reply(
struct dc_context *ctx, struct dc_context *ctx,
......
...@@ -1466,14 +1466,14 @@ static enum dc_status enable_link_dp_mst( ...@@ -1466,14 +1466,14 @@ static enum dc_status enable_link_dp_mst(
if (link->cur_link_settings.lane_count != LANE_COUNT_UNKNOWN) if (link->cur_link_settings.lane_count != LANE_COUNT_UNKNOWN)
return DC_OK; return DC_OK;
/* clear payload table */
dm_helpers_dp_mst_clear_payload_allocation_table(link->ctx, link);
/* to make sure the pending down rep can be processed /* to make sure the pending down rep can be processed
* before clear payload table * before enabling the link
*/ */
dm_helpers_dp_mst_poll_pending_down_reply(link->ctx, link); dm_helpers_dp_mst_poll_pending_down_reply(link->ctx, link);
/* clear payload table */
dm_helpers_dp_mst_clear_payload_allocation_table(link->ctx, link);
/* set the sink to MST mode before enabling the link */ /* set the sink to MST mode before enabling the link */
dp_enable_mst_on_sink(link, true); dp_enable_mst_on_sink(link, true);
......
...@@ -58,7 +58,7 @@ bool dm_helpers_dp_mst_write_payload_allocation_table( ...@@ -58,7 +58,7 @@ bool dm_helpers_dp_mst_write_payload_allocation_table(
bool enable); bool enable);
/* /*
* poll pending down reply before clear payload allocation table * poll pending down reply
*/ */
void dm_helpers_dp_mst_poll_pending_down_reply( void dm_helpers_dp_mst_poll_pending_down_reply(
struct dc_context *ctx, struct dc_context *ctx,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment