mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 10:19:47 +00:00
drm/amd/display: Poll pending down rep before clear payload allocation table
[Why] On current design, driver cannot handle the interrupt for down reply when link training is processing. The DOWN REQ send before link training will keep in the pending DOWN REP state in the queue. It makes the next DOWN REQ be queued until time out. [How] To add a polling sequence before clear payload allocation table to make sure the pending DOWN REP can be handled. Signed-off-by: Martin Tsai <martin.tsai@amd.com> Reviewed-by: Charlene Liu <Charlene.Liu@amd.com> Acked-by: Leo Li <sunpeng.li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
cbce5f0a9f
commit
22051b636e
3 changed files with 19 additions and 0 deletions
|
@ -263,6 +263,13 @@ bool dm_helpers_dp_mst_write_payload_allocation_table(
|
|||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* poll pending down reply before clear payload allocation table
|
||||
*/
|
||||
void dm_helpers_dp_mst_poll_pending_down_reply(
|
||||
struct dc_context *ctx,
|
||||
const struct dc_link *link)
|
||||
{}
|
||||
|
||||
/*
|
||||
* Clear payload allocation table before enable MST DP link.
|
||||
|
|
|
@ -1467,6 +1467,11 @@ static enum dc_status enable_link_dp_mst(
|
|||
if (link->cur_link_settings.lane_count != LANE_COUNT_UNKNOWN)
|
||||
return DC_OK;
|
||||
|
||||
/* to make sure the pending down rep can be processed
|
||||
* before clear payload table
|
||||
*/
|
||||
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);
|
||||
|
||||
|
|
|
@ -57,6 +57,13 @@ bool dm_helpers_dp_mst_write_payload_allocation_table(
|
|||
struct dp_mst_stream_allocation_table *proposed_table,
|
||||
bool enable);
|
||||
|
||||
/*
|
||||
* poll pending down reply before clear payload allocation table
|
||||
*/
|
||||
void dm_helpers_dp_mst_poll_pending_down_reply(
|
||||
struct dc_context *ctx,
|
||||
const struct dc_link *link);
|
||||
|
||||
/*
|
||||
* Clear payload allocation table before enable MST DP link.
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue