Skip to content

Commit d12baba

Browse files
Xiaodong Yanalexdeucher
authored andcommitted
drm/amd/display: add event type check before restart the authentication
[Why] Some combined docks will always trigger CP_IRQ but there's nothing the driver needs to take care of, but the CP_IRQ breaks the original hdcp state and triggers the driver to restart the authentication. [How] Add the event type check before restart the authentication or resend the stream management Signed-off-by: Xiaodong Yan <[email protected]> Reviewed-by: Wenjing Liu <[email protected]> Acked-by: Harry Wentland <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent daa9692 commit d12baba

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,10 @@ enum mod_hdcp_status mod_hdcp_hdcp2_dp_transition(struct mod_hdcp *hdcp,
630630
break;
631631
} else if (input->prepare_stream_manage != PASS ||
632632
input->stream_manage_write != PASS) {
633-
fail_and_restart_in_ms(0, &status, output);
633+
if (event_ctx->event == MOD_HDCP_EVENT_CALLBACK)
634+
fail_and_restart_in_ms(0, &status, output);
635+
else
636+
increment_stay_counter(hdcp);
634637
break;
635638
}
636639
callback_in_ms(100, output);
@@ -655,10 +658,12 @@ enum mod_hdcp_status mod_hdcp_hdcp2_dp_transition(struct mod_hdcp *hdcp,
655658
*/
656659
if (hdcp->auth.count.stream_management_retry_count > 10) {
657660
fail_and_restart_in_ms(0, &status, output);
658-
} else {
661+
} else if (event_ctx->event == MOD_HDCP_EVENT_CALLBACK) {
659662
hdcp->auth.count.stream_management_retry_count++;
660663
callback_in_ms(0, output);
661664
set_state_id(hdcp, output, D2_A9_SEND_STREAM_MANAGEMENT);
665+
} else {
666+
increment_stay_counter(hdcp);
662667
}
663668
break;
664669
}

0 commit comments

Comments
 (0)