aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4503-drm-amd-display-Add-logging-for-HDCP2.2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4503-drm-amd-display-Add-logging-for-HDCP2.2.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4503-drm-amd-display-Add-logging-for-HDCP2.2.patch309
1 files changed, 309 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4503-drm-amd-display-Add-logging-for-HDCP2.2.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4503-drm-amd-display-Add-logging-for-HDCP2.2.patch
new file mode 100644
index 00000000..d35a3ef4
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4503-drm-amd-display-Add-logging-for-HDCP2.2.patch
@@ -0,0 +1,309 @@
+From 4f15a05fdfe99ba65a5cb3574965f6acf4316bd0 Mon Sep 17 00:00:00 2001
+From: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+Date: Wed, 18 Sep 2019 11:24:09 -0400
+Subject: [PATCH 4503/4736] drm/amd/display: Add logging for HDCP2.2
+
+[Why]
+We need to log the state changes for 2.2
+This patch extends the existing logging functions to handle
+HDCP2.2.
+
+[How]
+We do this by adding if/else in the defines, and output the log
+ based on the hdcp version
+
+Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+---
+ .../drm/amd/display/modules/hdcp/hdcp_log.c | 118 ++++++++++++++++++
+ .../drm/amd/display/modules/hdcp/hdcp_log.h | 94 +++++++++++---
+ .../drm/amd/display/modules/hdcp/hdcp_psp.c | 4 +
+ 3 files changed, 196 insertions(+), 20 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_log.c b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_log.c
+index 3982ced5f969..724ebcee9a19 100644
+--- a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_log.c
++++ b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_log.c
+@@ -116,6 +116,58 @@ char *mod_hdcp_status_to_str(int32_t status)
+ return "MOD_HDCP_STATUS_DDC_FAILURE";
+ case MOD_HDCP_STATUS_INVALID_OPERATION:
+ return "MOD_HDCP_STATUS_INVALID_OPERATION";
++ case MOD_HDCP_STATUS_HDCP2_NOT_CAPABLE:
++ return "MOD_HDCP_STATUS_HDCP2_NOT_CAPABLE";
++ case MOD_HDCP_STATUS_HDCP2_CREATE_SESSION_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_CREATE_SESSION_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_DESTROY_SESSION_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_DESTROY_SESSION_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_PREP_AKE_INIT_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_PREP_AKE_INIT_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_AKE_CERT_PENDING:
++ return "MOD_HDCP_STATUS_HDCP2_AKE_CERT_PENDING";
++ case MOD_HDCP_STATUS_HDCP2_H_PRIME_PENDING:
++ return "MOD_HDCP_STATUS_HDCP2_H_PRIME_PENDING";
++ case MOD_HDCP_STATUS_HDCP2_PAIRING_INFO_PENDING:
++ return "MOD_HDCP_STATUS_HDCP2_PAIRING_INFO_PENDING";
++ case MOD_HDCP_STATUS_HDCP2_VALIDATE_AKE_CERT_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_VALIDATE_AKE_CERT_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_AKE_CERT_REVOKED:
++ return "MOD_HDCP_STATUS_HDCP2_AKE_CERT_REVOKED";
++ case MOD_HDCP_STATUS_HDCP2_VALIDATE_H_PRIME_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_VALIDATE_H_PRIME_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_VALIDATE_PAIRING_INFO_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_VALIDATE_PAIRING_INFO_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_PREP_LC_INIT_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_PREP_LC_INIT_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_L_PRIME_PENDING:
++ return "MOD_HDCP_STATUS_HDCP2_L_PRIME_PENDING";
++ case MOD_HDCP_STATUS_HDCP2_VALIDATE_L_PRIME_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_VALIDATE_L_PRIME_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_PREP_EKS_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_PREP_EKS_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_ENABLE_ENCRYPTION_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_ENABLE_ENCRYPTION_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_VALIDATE_RX_ID_LIST_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_VALIDATE_RX_ID_LIST_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_RX_ID_LIST_REVOKED:
++ return "MOD_HDCP_STATUS_HDCP2_RX_ID_LIST_REVOKED";
++ case MOD_HDCP_STATUS_HDCP2_RX_ID_LIST_NOT_READY:
++ return "MOD_HDCP_STATUS_HDCP2_RX_ID_LIST_NOT_READY";
++ case MOD_HDCP_STATUS_HDCP2_ENABLE_STREAM_ENCRYPTION:
++ return "MOD_HDCP_STATUS_HDCP2_ENABLE_STREAM_ENCRYPTION";
++ case MOD_HDCP_STATUS_HDCP2_STREAM_READY_PENDING:
++ return "MOD_HDCP_STATUS_HDCP2_STREAM_READY_PENDING";
++ case MOD_HDCP_STATUS_HDCP2_VALIDATE_STREAM_READY_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_VALIDATE_STREAM_READY_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_PREPARE_STREAM_MANAGEMENT_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_PREPARE_STREAM_MANAGEMENT_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_REAUTH_REQUEST:
++ return "MOD_HDCP_STATUS_HDCP2_REAUTH_REQUEST";
++ case MOD_HDCP_STATUS_HDCP2_REAUTH_LINK_INTEGRITY_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_REAUTH_LINK_INTEGRITY_FAILURE";
++ case MOD_HDCP_STATUS_HDCP2_DEVICE_COUNT_MISMATCH_FAILURE:
++ return "MOD_HDCP_STATUS_HDCP2_DEVICE_COUNT_MISMATCH_FAILURE";
+ default:
+ return "MOD_HDCP_STATUS_UNKNOWN";
+ }
+@@ -156,6 +208,72 @@ char *mod_hdcp_state_id_to_str(int32_t id)
+ return "D1_A6_WAIT_FOR_READY";
+ case D1_A7_READ_KSV_LIST:
+ return "D1_A7_READ_KSV_LIST";
++ case H2_A0_KNOWN_HDCP2_CAPABLE_RX:
++ return "H2_A0_KNOWN_HDCP2_CAPABLE_RX";
++ case H2_A1_SEND_AKE_INIT:
++ return "H2_A1_SEND_AKE_INIT";
++ case H2_A1_VALIDATE_AKE_CERT:
++ return "H2_A1_VALIDATE_AKE_CERT";
++ case H2_A1_SEND_NO_STORED_KM:
++ return "H2_A1_SEND_NO_STORED_KM";
++ case H2_A1_READ_H_PRIME:
++ return "H2_A1_READ_H_PRIME";
++ case H2_A1_READ_PAIRING_INFO_AND_VALIDATE_H_PRIME:
++ return "H2_A1_READ_PAIRING_INFO_AND_VALIDATE_H_PRIME";
++ case H2_A1_SEND_STORED_KM:
++ return "H2_A1_SEND_STORED_KM";
++ case H2_A1_VALIDATE_H_PRIME:
++ return "H2_A1_VALIDATE_H_PRIME";
++ case H2_A2_LOCALITY_CHECK:
++ return "H2_A2_LOCALITY_CHECK";
++ case H2_A3_EXCHANGE_KS_AND_TEST_FOR_REPEATER:
++ return "H2_A3_EXCHANGE_KS_AND_TEST_FOR_REPEATER";
++ case H2_ENABLE_ENCRYPTION:
++ return "H2_ENABLE_ENCRYPTION";
++ case H2_A5_AUTHENTICATED:
++ return "H2_A5_AUTHENTICATED";
++ case H2_A6_WAIT_FOR_RX_ID_LIST:
++ return "H2_A6_WAIT_FOR_RX_ID_LIST";
++ case H2_A78_VERIFY_RX_ID_LIST_AND_SEND_ACK:
++ return "H2_A78_VERIFY_RX_ID_LIST_AND_SEND_ACK";
++ case H2_A9_SEND_STREAM_MANAGEMENT:
++ return "H2_A9_SEND_STREAM_MANAGEMENT";
++ case H2_A9_VALIDATE_STREAM_READY:
++ return "H2_A9_VALIDATE_STREAM_READY";
++ case D2_A0_DETERMINE_RX_HDCP_CAPABLE:
++ return "D2_A0_DETERMINE_RX_HDCP_CAPABLE";
++ case D2_A1_SEND_AKE_INIT:
++ return "D2_A1_SEND_AKE_INIT";
++ case D2_A1_VALIDATE_AKE_CERT:
++ return "D2_A1_VALIDATE_AKE_CERT";
++ case D2_A1_SEND_NO_STORED_KM:
++ return "D2_A1_SEND_NO_STORED_KM";
++ case D2_A1_READ_H_PRIME:
++ return "D2_A1_READ_H_PRIME";
++ case D2_A1_READ_PAIRING_INFO_AND_VALIDATE_H_PRIME:
++ return "D2_A1_READ_PAIRING_INFO_AND_VALIDATE_H_PRIME";
++ case D2_A1_SEND_STORED_KM:
++ return "D2_A1_SEND_STORED_KM";
++ case D2_A1_VALIDATE_H_PRIME:
++ return "D2_A1_VALIDATE_H_PRIME";
++ case D2_A2_LOCALITY_CHECK:
++ return "D2_A2_LOCALITY_CHECK";
++ case D2_A34_EXCHANGE_KS_AND_TEST_FOR_REPEATER:
++ return "D2_A34_EXCHANGE_KS_AND_TEST_FOR_REPEATER";
++ case D2_SEND_CONTENT_STREAM_TYPE:
++ return "D2_SEND_CONTENT_STREAM_TYPE";
++ case D2_ENABLE_ENCRYPTION:
++ return "D2_ENABLE_ENCRYPTION";
++ case D2_A5_AUTHENTICATED:
++ return "D2_A5_AUTHENTICATED";
++ case D2_A6_WAIT_FOR_RX_ID_LIST:
++ return "D2_A6_WAIT_FOR_RX_ID_LIST";
++ case D2_A78_VERIFY_RX_ID_LIST_AND_SEND_ACK:
++ return "D2_A78_VERIFY_RX_ID_LIST_AND_SEND_ACK";
++ case D2_A9_SEND_STREAM_MANAGEMENT:
++ return "D2_A9_SEND_STREAM_MANAGEMENT";
++ case D2_A9_VALIDATE_STREAM_READY:
++ return "D2_A9_VALIDATE_STREAM_READY";
+ default:
+ return "UNKNOWN_STATE_ID";
+ };
+diff --git a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_log.h b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_log.h
+index 2fd0e0a893ef..b29322e7d5fe 100644
+--- a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_log.h
++++ b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_log.h
+@@ -45,6 +45,10 @@
+ HDCP_LOG_VER(hdcp, \
+ "[Link %d] HDCP 1.4 enabled on display %d", \
+ hdcp->config.index, displayIndex)
++#define HDCP_HDCP2_ENABLED_TRACE(hdcp, displayIndex) \
++ HDCP_LOG_VER(hdcp, \
++ "[Link %d] HDCP 2.2 enabled on display %d", \
++ hdcp->config.index, displayIndex)
+ /* state machine logs */
+ #define HDCP_REMOVE_DISPLAY_TRACE(hdcp, displayIndex) \
+ HDCP_LOG_FSM(hdcp, \
+@@ -93,26 +97,73 @@
+ hdcp->buf); \
+ } while (0)
+ #define HDCP_FULL_DDC_TRACE(hdcp) do { \
+- HDCP_DDC_READ_TRACE(hdcp, "BKSV", hdcp->auth.msg.hdcp1.bksv, \
+- sizeof(hdcp->auth.msg.hdcp1.bksv)); \
+- HDCP_DDC_READ_TRACE(hdcp, "BCAPS", &hdcp->auth.msg.hdcp1.bcaps, \
+- sizeof(hdcp->auth.msg.hdcp1.bcaps)); \
+- HDCP_DDC_WRITE_TRACE(hdcp, "AN", hdcp->auth.msg.hdcp1.an, \
+- sizeof(hdcp->auth.msg.hdcp1.an)); \
+- HDCP_DDC_WRITE_TRACE(hdcp, "AKSV", hdcp->auth.msg.hdcp1.aksv, \
+- sizeof(hdcp->auth.msg.hdcp1.aksv)); \
+- HDCP_DDC_WRITE_TRACE(hdcp, "AINFO", &hdcp->auth.msg.hdcp1.ainfo, \
+- sizeof(hdcp->auth.msg.hdcp1.ainfo)); \
+- HDCP_DDC_READ_TRACE(hdcp, "RI' / R0'", \
+- (uint8_t *)&hdcp->auth.msg.hdcp1.r0p, \
+- sizeof(hdcp->auth.msg.hdcp1.r0p)); \
+- HDCP_DDC_READ_TRACE(hdcp, "BINFO", \
+- (uint8_t *)&hdcp->auth.msg.hdcp1.binfo_dp, \
+- sizeof(hdcp->auth.msg.hdcp1.binfo_dp)); \
+- HDCP_DDC_READ_TRACE(hdcp, "KSVLIST", hdcp->auth.msg.hdcp1.ksvlist, \
+- hdcp->auth.msg.hdcp1.ksvlist_size); \
+- HDCP_DDC_READ_TRACE(hdcp, "V'", hdcp->auth.msg.hdcp1.vp, \
+- sizeof(hdcp->auth.msg.hdcp1.vp)); \
++ if (is_hdcp1(hdcp)) { \
++ HDCP_DDC_READ_TRACE(hdcp, "BKSV", hdcp->auth.msg.hdcp1.bksv, \
++ sizeof(hdcp->auth.msg.hdcp1.bksv)); \
++ HDCP_DDC_READ_TRACE(hdcp, "BCAPS", &hdcp->auth.msg.hdcp1.bcaps, \
++ sizeof(hdcp->auth.msg.hdcp1.bcaps)); \
++ HDCP_DDC_WRITE_TRACE(hdcp, "AN", hdcp->auth.msg.hdcp1.an, \
++ sizeof(hdcp->auth.msg.hdcp1.an)); \
++ HDCP_DDC_WRITE_TRACE(hdcp, "AKSV", hdcp->auth.msg.hdcp1.aksv, \
++ sizeof(hdcp->auth.msg.hdcp1.aksv)); \
++ HDCP_DDC_WRITE_TRACE(hdcp, "AINFO", &hdcp->auth.msg.hdcp1.ainfo, \
++ sizeof(hdcp->auth.msg.hdcp1.ainfo)); \
++ HDCP_DDC_READ_TRACE(hdcp, "RI' / R0'", \
++ (uint8_t *)&hdcp->auth.msg.hdcp1.r0p, \
++ sizeof(hdcp->auth.msg.hdcp1.r0p)); \
++ HDCP_DDC_READ_TRACE(hdcp, "BINFO", \
++ (uint8_t *)&hdcp->auth.msg.hdcp1.binfo_dp, \
++ sizeof(hdcp->auth.msg.hdcp1.binfo_dp)); \
++ HDCP_DDC_READ_TRACE(hdcp, "KSVLIST", hdcp->auth.msg.hdcp1.ksvlist, \
++ hdcp->auth.msg.hdcp1.ksvlist_size); \
++ HDCP_DDC_READ_TRACE(hdcp, "V'", hdcp->auth.msg.hdcp1.vp, \
++ sizeof(hdcp->auth.msg.hdcp1.vp)); \
++ } else { \
++ HDCP_DDC_READ_TRACE(hdcp, "HDCP2Version", \
++ &hdcp->auth.msg.hdcp2.hdcp2version_hdmi, \
++ sizeof(hdcp->auth.msg.hdcp2.hdcp2version_hdmi)); \
++ HDCP_DDC_READ_TRACE(hdcp, "Rx Caps", hdcp->auth.msg.hdcp2.rxcaps_dp, \
++ sizeof(hdcp->auth.msg.hdcp2.rxcaps_dp)); \
++ HDCP_DDC_WRITE_TRACE(hdcp, "AKE Init", hdcp->auth.msg.hdcp2.ake_init, \
++ sizeof(hdcp->auth.msg.hdcp2.ake_init)); \
++ HDCP_DDC_READ_TRACE(hdcp, "AKE Cert", hdcp->auth.msg.hdcp2.ake_cert, \
++ sizeof(hdcp->auth.msg.hdcp2.ake_cert)); \
++ HDCP_DDC_WRITE_TRACE(hdcp, "Stored KM", \
++ hdcp->auth.msg.hdcp2.ake_stored_km, \
++ sizeof(hdcp->auth.msg.hdcp2.ake_stored_km)); \
++ HDCP_DDC_WRITE_TRACE(hdcp, "No Stored KM", \
++ hdcp->auth.msg.hdcp2.ake_no_stored_km, \
++ sizeof(hdcp->auth.msg.hdcp2.ake_no_stored_km)); \
++ HDCP_DDC_READ_TRACE(hdcp, "H'", hdcp->auth.msg.hdcp2.ake_h_prime, \
++ sizeof(hdcp->auth.msg.hdcp2.ake_h_prime)); \
++ HDCP_DDC_READ_TRACE(hdcp, "Pairing Info", \
++ hdcp->auth.msg.hdcp2.ake_pairing_info, \
++ sizeof(hdcp->auth.msg.hdcp2.ake_pairing_info)); \
++ HDCP_DDC_WRITE_TRACE(hdcp, "LC Init", hdcp->auth.msg.hdcp2.lc_init, \
++ sizeof(hdcp->auth.msg.hdcp2.lc_init)); \
++ HDCP_DDC_READ_TRACE(hdcp, "L'", hdcp->auth.msg.hdcp2.lc_l_prime, \
++ sizeof(hdcp->auth.msg.hdcp2.lc_l_prime)); \
++ HDCP_DDC_WRITE_TRACE(hdcp, "Exchange KS", hdcp->auth.msg.hdcp2.ske_eks, \
++ sizeof(hdcp->auth.msg.hdcp2.ske_eks)); \
++ HDCP_DDC_READ_TRACE(hdcp, "Rx Status", \
++ (uint8_t *)&hdcp->auth.msg.hdcp2.rxstatus, \
++ sizeof(hdcp->auth.msg.hdcp2.rxstatus)); \
++ HDCP_DDC_READ_TRACE(hdcp, "Rx Id List", \
++ hdcp->auth.msg.hdcp2.rx_id_list, \
++ hdcp->auth.msg.hdcp2.rx_id_list_size); \
++ HDCP_DDC_WRITE_TRACE(hdcp, "Rx Id List Ack", \
++ hdcp->auth.msg.hdcp2.repeater_auth_ack, \
++ sizeof(hdcp->auth.msg.hdcp2.repeater_auth_ack)); \
++ HDCP_DDC_WRITE_TRACE(hdcp, "Content Stream Management", \
++ hdcp->auth.msg.hdcp2.repeater_auth_stream_manage, \
++ hdcp->auth.msg.hdcp2.stream_manage_size); \
++ HDCP_DDC_READ_TRACE(hdcp, "Stream Ready", \
++ hdcp->auth.msg.hdcp2.repeater_auth_stream_ready, \
++ sizeof(hdcp->auth.msg.hdcp2.repeater_auth_stream_ready)); \
++ HDCP_DDC_WRITE_TRACE(hdcp, "Content Stream Type", \
++ hdcp->auth.msg.hdcp2.content_stream_type_dp, \
++ sizeof(hdcp->auth.msg.hdcp2.content_stream_type_dp)); \
++ } \
+ } while (0)
+ #define HDCP_TOP_ADD_DISPLAY_TRACE(hdcp, i) \
+ HDCP_LOG_TOP(hdcp, "[Link %d]\tadd display %d", \
+@@ -123,6 +174,9 @@
+ #define HDCP_TOP_HDCP1_DESTROY_SESSION_TRACE(hdcp) \
+ HDCP_LOG_TOP(hdcp, "[Link %d]\tdestroy hdcp1 session", \
+ hdcp->config.index)
++#define HDCP_TOP_HDCP2_DESTROY_SESSION_TRACE(hdcp) \
++ HDCP_LOG_TOP(hdcp, "[Link %d]\tdestroy hdcp2 session", \
++ hdcp->config.index)
+ #define HDCP_TOP_RESET_AUTH_TRACE(hdcp) \
+ HDCP_LOG_TOP(hdcp, "[Link %d]\treset authentication", hdcp->config.index)
+ #define HDCP_TOP_RESET_CONN_TRACE(hdcp) \
+diff --git a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
+index ddba0cfa5722..a365cf00bc4c 100644
+--- a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
++++ b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c
+@@ -393,6 +393,8 @@ enum mod_hdcp_status mod_hdcp_hdcp2_destroy_session(struct mod_hdcp *hdcp)
+ if (hdcp_cmd->hdcp_status != TA_HDCP_STATUS__SUCCESS)
+ return MOD_HDCP_STATUS_HDCP2_DESTROY_SESSION_FAILURE;
+
++ HDCP_TOP_HDCP2_DESTROY_SESSION_TRACE(hdcp);
++
+ return MOD_HDCP_STATUS_SUCCESS;
+ }
+
+@@ -649,6 +651,7 @@ enum mod_hdcp_status mod_hdcp_hdcp2_enable_encryption(struct mod_hdcp *hdcp)
+
+ if (!is_dp_mst_hdcp(hdcp)) {
+ display->state = MOD_HDCP_DISPLAY_ENCRYPTION_ENABLED;
++ HDCP_HDCP2_ENABLED_TRACE(hdcp, display->index);
+ }
+
+ return MOD_HDCP_STATUS_SUCCESS;
+@@ -727,6 +730,7 @@ enum mod_hdcp_status mod_hdcp_hdcp2_enable_dp_stream_encryption(struct mod_hdcp
+ break;
+
+ hdcp->connection.displays[i].state = MOD_HDCP_DISPLAY_ENCRYPTION_ENABLED;
++ HDCP_HDCP2_ENABLED_TRACE(hdcp, hdcp->connection.displays[i].index);
+ }
+
+ return (hdcp_cmd->hdcp_status == TA_HDCP_STATUS__SUCCESS) ? MOD_HDCP_STATUS_SUCCESS
+--
+2.17.1
+