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 <Xiaodong.Yan@amd.com> Reviewed-by: Wenjing Liu <Wenjing.Liu@amd.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
daa9692db9
commit
d12babaf15
@ -630,7 +630,10 @@ enum mod_hdcp_status mod_hdcp_hdcp2_dp_transition(struct mod_hdcp *hdcp,
|
||||
break;
|
||||
} else if (input->prepare_stream_manage != PASS ||
|
||||
input->stream_manage_write != PASS) {
|
||||
fail_and_restart_in_ms(0, &status, output);
|
||||
if (event_ctx->event == MOD_HDCP_EVENT_CALLBACK)
|
||||
fail_and_restart_in_ms(0, &status, output);
|
||||
else
|
||||
increment_stay_counter(hdcp);
|
||||
break;
|
||||
}
|
||||
callback_in_ms(100, output);
|
||||
@ -655,10 +658,12 @@ enum mod_hdcp_status mod_hdcp_hdcp2_dp_transition(struct mod_hdcp *hdcp,
|
||||
*/
|
||||
if (hdcp->auth.count.stream_management_retry_count > 10) {
|
||||
fail_and_restart_in_ms(0, &status, output);
|
||||
} else {
|
||||
} else if (event_ctx->event == MOD_HDCP_EVENT_CALLBACK) {
|
||||
hdcp->auth.count.stream_management_retry_count++;
|
||||
callback_in_ms(0, output);
|
||||
set_state_id(hdcp, output, D2_A9_SEND_STREAM_MANAGEMENT);
|
||||
} else {
|
||||
increment_stay_counter(hdcp);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user