Commit 79aad7bd authored by Bhawanpreet Lakha's avatar Bhawanpreet Lakha Committed by Alex Deucher

drm/amd/display: update psp interface header

[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: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Reviewed-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e50dc171
...@@ -117,6 +117,8 @@ struct ta_dtm_shared_memory { ...@@ -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, 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); uint64_t fence_mc_addr);
enum { PSP_HDCP_SRM_FIRST_GEN_MAX_SIZE = 5120 };
enum ta_hdcp_command { enum ta_hdcp_command {
TA_HDCP_COMMAND__INITIALIZE, TA_HDCP_COMMAND__INITIALIZE,
TA_HDCP_COMMAND__HDCP1_CREATE_SESSION, TA_HDCP_COMMAND__HDCP1_CREATE_SESSION,
...@@ -134,7 +136,10 @@ enum ta_hdcp_command { ...@@ -134,7 +136,10 @@ enum ta_hdcp_command {
TA_HDCP_COMMAND__UNUSED_3, TA_HDCP_COMMAND__UNUSED_3,
TA_HDCP_COMMAND__HDCP2_CREATE_SESSION_V2, TA_HDCP_COMMAND__HDCP2_CREATE_SESSION_V2,
TA_HDCP_COMMAND__HDCP2_PREPARE_PROCESS_AUTHENTICATION_MSG_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 { enum ta_hdcp2_msg_id {
...@@ -415,6 +420,22 @@ struct ta_hdcp_cmd_hdcp2_enable_dp_stream_encryption_input { ...@@ -415,6 +420,22 @@ struct ta_hdcp_cmd_hdcp2_enable_dp_stream_encryption_input {
uint32_t display_handle; 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 */ /* Common input structure for HDCP callbacks */
union ta_hdcp_cmd_input { union ta_hdcp_cmd_input {
...@@ -432,6 +453,7 @@ 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 struct ta_hdcp_cmd_hdcp2_process_prepare_authentication_message_input_v2
hdcp2_prepare_process_authentication_message_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_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 */ /* Common output structure for HDCP callbacks */
...@@ -444,6 +466,8 @@ union ta_hdcp_cmd_output { ...@@ -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_create_session_output_v2 hdcp2_create_session_v2;
struct ta_hdcp_cmd_hdcp2_process_prepare_authentication_message_output_v2 struct ta_hdcp_cmd_hdcp2_process_prepare_authentication_message_output_v2
hdcp2_prepare_process_authentication_message_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;
}; };
/**********************************************************/ /**********************************************************/
......
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