Commit 7bc3807f authored by George Shen's avatar George Shen Committed by Alex Deucher

drm/amd/display: Workaround to do HDCP authentication twice on certain displays

[Why]
When transitioning from SST to MST, the HDCP repeater in some MST
displays will enter a bad state. The HDCP repeater is recovered after
failing and performing authentication again.

[How]
Add monitor patch to trigger HDCP authentication failure after
encryption is enabled and re-authenticate.
Signed-off-by: default avatarGeorge Shen <george.shen@amd.com>
Reviewed-by: default avatarWenjing Liu <Wenjing.Liu@amd.com>
Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent df8e34ac
...@@ -230,6 +230,9 @@ enum mod_hdcp_status mod_hdcp_hdcp1_dp_transition(struct mod_hdcp *hdcp, ...@@ -230,6 +230,9 @@ enum mod_hdcp_status mod_hdcp_hdcp1_dp_transition(struct mod_hdcp *hdcp,
(!conn->is_repeater && is_dp_mst_hdcp(hdcp) && input->stream_encryption_dp != PASS)) { (!conn->is_repeater && is_dp_mst_hdcp(hdcp) && input->stream_encryption_dp != PASS)) {
fail_and_restart_in_ms(0, &status, output); fail_and_restart_in_ms(0, &status, output);
break; break;
} else if (conn->hdcp1_retry_count < conn->link.adjust.hdcp1.min_auth_retries_wa) {
fail_and_restart_in_ms(0, &status, output);
break;
} }
if (conn->is_repeater) { if (conn->is_repeater) {
set_watchdog_in_ms(hdcp, 5000, output); set_watchdog_in_ms(hdcp, 5000, output);
......
...@@ -157,7 +157,8 @@ struct mod_hdcp_display_adjustment { ...@@ -157,7 +157,8 @@ struct mod_hdcp_display_adjustment {
struct mod_hdcp_link_adjustment_hdcp1 { struct mod_hdcp_link_adjustment_hdcp1 {
uint8_t disable : 1; uint8_t disable : 1;
uint8_t postpone_encryption : 1; uint8_t postpone_encryption : 1;
uint8_t reserved : 6; uint8_t min_auth_retries_wa : 1;
uint8_t reserved : 5;
}; };
enum mod_hdcp_force_hdcp_type { enum mod_hdcp_force_hdcp_type {
......
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