Commit dd5c6362 authored by Dennis Chan's avatar Dennis Chan Committed by Alex Deucher

drm/amd/display: Fix Replay Desync Error IRQ handler

In previous case, Replay didn't identify the IRQ type, This commit fixes
the issues for the interrupt.
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Reviewed-by: default avatarRobin Chen <robin.chen@amd.com>
Acked-by: default avatarRodrigo Siqueira <rodrigo.siqueira@amd.com>
Signed-off-by: default avatarDennis Chan <dennis.chan@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent abd26a32
...@@ -190,9 +190,6 @@ static void handle_hpd_irq_replay_sink(struct dc_link *link) ...@@ -190,9 +190,6 @@ static void handle_hpd_irq_replay_sink(struct dc_link *link)
/*AMD Replay version reuse DP_PSR_ERROR_STATUS for REPLAY_ERROR status.*/ /*AMD Replay version reuse DP_PSR_ERROR_STATUS for REPLAY_ERROR status.*/
union psr_error_status replay_error_status; union psr_error_status replay_error_status;
if (link->replay_settings.config.force_disable_desync_error_check)
return;
if (!link->replay_settings.replay_feature_enabled) if (!link->replay_settings.replay_feature_enabled)
return; return;
...@@ -210,9 +207,6 @@ static void handle_hpd_irq_replay_sink(struct dc_link *link) ...@@ -210,9 +207,6 @@ static void handle_hpd_irq_replay_sink(struct dc_link *link)
&replay_error_status.raw, &replay_error_status.raw,
sizeof(replay_error_status.raw)); sizeof(replay_error_status.raw));
if (replay_configuration.bits.DESYNC_ERROR_STATUS)
link->replay_settings.config.received_desync_error_hpd = 1;
link->replay_settings.config.replay_error_status.bits.LINK_CRC_ERROR = link->replay_settings.config.replay_error_status.bits.LINK_CRC_ERROR =
replay_error_status.bits.LINK_CRC_ERROR; replay_error_status.bits.LINK_CRC_ERROR;
link->replay_settings.config.replay_error_status.bits.DESYNC_ERROR = link->replay_settings.config.replay_error_status.bits.DESYNC_ERROR =
...@@ -225,6 +219,12 @@ static void handle_hpd_irq_replay_sink(struct dc_link *link) ...@@ -225,6 +219,12 @@ static void handle_hpd_irq_replay_sink(struct dc_link *link)
link->replay_settings.config.replay_error_status.bits.STATE_TRANSITION_ERROR) { link->replay_settings.config.replay_error_status.bits.STATE_TRANSITION_ERROR) {
bool allow_active; bool allow_active;
if (link->replay_settings.config.replay_error_status.bits.DESYNC_ERROR)
link->replay_settings.config.received_desync_error_hpd = 1;
if (link->replay_settings.config.force_disable_desync_error_check)
return;
/* Acknowledge and clear configuration bits */ /* Acknowledge and clear configuration bits */
dm_helpers_dp_write_dpcd( dm_helpers_dp_write_dpcd(
link->ctx, link->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