Commit 454425e8 authored by Jing Zhou's avatar Jing Zhou Committed by Alex Deucher

drm/amd/display: rx_validation failed resume from sleep

[why]
Most DP/HDMI monitors need more time to response rx_validation
request.

[how]
Add generic 1000ms delay.
Signed-off-by: default avatarJing Zhou <Jing.Zhou@amd.com>
Reviewed-by: default avatarWenjing Liu <Wenjing.Liu@amd.com>
Acked-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 838a4ea3
...@@ -67,11 +67,19 @@ enum mod_hdcp_status mod_hdcp_hdcp1_transition(struct mod_hdcp *hdcp, ...@@ -67,11 +67,19 @@ enum mod_hdcp_status mod_hdcp_hdcp1_transition(struct mod_hdcp *hdcp,
break; break;
case H1_A2_COMPUTATIONS_A3_VALIDATE_RX_A6_TEST_FOR_REPEATER: case H1_A2_COMPUTATIONS_A3_VALIDATE_RX_A6_TEST_FOR_REPEATER:
if (input->bcaps_read != PASS || if (input->bcaps_read != PASS ||
input->r0p_read != PASS || input->r0p_read != PASS) {
input->rx_validation != PASS || fail_and_restart_in_ms(0, &status, output);
(!conn->is_repeater && input->encryption != PASS)) { break;
} else if (input->rx_validation != PASS) {
/* 1A-06: consider invalid r0' a failure */ /* 1A-06: consider invalid r0' a failure */
/* 1A-08: consider bksv listed in SRM a failure */ /* 1A-08: consider bksv listed in SRM a failure */
/*
* some slow RX will fail rx validation when it is
* not ready. give it more time to react before retry.
*/
fail_and_restart_in_ms(1000, &status, output);
break;
} else if (!conn->is_repeater && input->encryption != PASS) {
fail_and_restart_in_ms(0, &status, output); fail_and_restart_in_ms(0, &status, output);
break; break;
} }
...@@ -212,7 +220,11 @@ enum mod_hdcp_status mod_hdcp_hdcp1_dp_transition(struct mod_hdcp *hdcp, ...@@ -212,7 +220,11 @@ enum mod_hdcp_status mod_hdcp_hdcp1_dp_transition(struct mod_hdcp *hdcp,
* after 3 attempts. * after 3 attempts.
* 1A-08: consider bksv listed in SRM a failure * 1A-08: consider bksv listed in SRM a failure
*/ */
fail_and_restart_in_ms(0, &status, output); /*
* some slow RX will fail rx validation when it is
* not ready. give it more time to react before retry.
*/
fail_and_restart_in_ms(1000, &status, output);
} }
break; break;
} else if ((!conn->is_repeater && input->encryption != PASS) || } else if ((!conn->is_repeater && input->encryption != PASS) ||
......
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