[Why]
We need to support SRM(System Renewability Message)
As per hdcp spec (5.Renewability) SRM needs to be storage in a non-volatile
memory.

PSP owns the checking of SRM but doesn't have the ability to store it in a
non-volatile memory. So we need the kernel driver to facilitate it using the
interface provided by PSP

[How]
Add the interface to the header file, so the driver can use them

v2: update commit description

Signed-off-by: Bhawanpreet Lakha <bhawanpreet.la...@amd.com>
Reviewed-by: Rodrigo Siqueira <rodrigo.sique...@amd.com>
---
 .../drm/amd/display/modules/hdcp/hdcp_psp.h   | 26 ++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.h 
b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.h
index 82a5e997d573..d5cb3f46606f 100644
--- a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.h
+++ b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.h
@@ -117,6 +117,8 @@ struct ta_dtm_shared_memory {
 int psp_cmd_submit_buf(struct psp_context *psp, struct amdgpu_firmware_info 
*ucode, struct psp_gfx_cmd_resp *cmd,
                uint64_t fence_mc_addr);
 
+enum { PSP_HDCP_SRM_FIRST_GEN_MAX_SIZE = 5120 };
+
 enum ta_hdcp_command {
        TA_HDCP_COMMAND__INITIALIZE,
        TA_HDCP_COMMAND__HDCP1_CREATE_SESSION,
@@ -134,7 +136,10 @@ enum ta_hdcp_command {
        TA_HDCP_COMMAND__UNUSED_3,
        TA_HDCP_COMMAND__HDCP2_CREATE_SESSION_V2,
        TA_HDCP_COMMAND__HDCP2_PREPARE_PROCESS_AUTHENTICATION_MSG_V2,
-       TA_HDCP_COMMAND__HDCP2_ENABLE_DP_STREAM_ENCRYPTION
+       TA_HDCP_COMMAND__HDCP2_ENABLE_DP_STREAM_ENCRYPTION,
+       TA_HDCP_COMMAND__HDCP_DESTROY_ALL_SESSIONS,
+       TA_HDCP_COMMAND__HDCP_SET_SRM,
+       TA_HDCP_COMMAND__HDCP_GET_SRM
 };
 
 enum ta_hdcp2_msg_id {
@@ -415,6 +420,22 @@ struct ta_hdcp_cmd_hdcp2_enable_dp_stream_encryption_input 
{
        uint32_t display_handle;
 };
 
+struct ta_hdcp_cmd_set_srm_input {
+       uint32_t srm_buf_size;
+       uint8_t srm_buf[PSP_HDCP_SRM_FIRST_GEN_MAX_SIZE];
+};
+
+struct ta_hdcp_cmd_set_srm_output {
+       uint8_t valid_signature;
+       uint32_t srm_version;
+};
+
+struct ta_hdcp_cmd_get_srm_output {
+       uint32_t srm_version;
+       uint32_t srm_buf_size;
+       uint8_t srm_buf[PSP_HDCP_SRM_FIRST_GEN_MAX_SIZE];
+};
+
 /**********************************************************/
 /* Common input structure for HDCP callbacks */
 union ta_hdcp_cmd_input {
@@ -432,6 +453,7 @@ union ta_hdcp_cmd_input {
        struct ta_hdcp_cmd_hdcp2_process_prepare_authentication_message_input_v2
                hdcp2_prepare_process_authentication_message_v2;
        struct ta_hdcp_cmd_hdcp2_enable_dp_stream_encryption_input 
hdcp2_enable_dp_stream_encryption;
+       struct ta_hdcp_cmd_set_srm_input hdcp_set_srm;
 };
 
 /* Common output structure for HDCP callbacks */
@@ -444,6 +466,8 @@ union ta_hdcp_cmd_output {
        struct ta_hdcp_cmd_hdcp2_create_session_output_v2 
hdcp2_create_session_v2;
        struct 
ta_hdcp_cmd_hdcp2_process_prepare_authentication_message_output_v2
                hdcp2_prepare_process_authentication_message_v2;
+       struct ta_hdcp_cmd_set_srm_output hdcp_set_srm;
+       struct ta_hdcp_cmd_get_srm_output hdcp_get_srm;
 };
 /**********************************************************/
 
-- 
2.17.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to