Commit ce97f37b authored by Candice Li's avatar Candice Li Committed by Alex Deucher

drm/amd: consolidate TA shared memory structures

Signed-off-by: default avatarCandice Li <candice.li@amd.com>
Reviewed-by: default avatarJohn Clements <john.clements@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent f2bd514d
This diff is collapsed.
...@@ -136,60 +136,32 @@ struct psp_asd_context { ...@@ -136,60 +136,32 @@ struct psp_asd_context {
uint32_t session_id; uint32_t session_id;
}; };
struct psp_xgmi_context { struct ta_mem_context {
uint8_t initialized; struct amdgpu_bo *shared_bo;
uint32_t session_id; uint64_t shared_mc_addr;
struct amdgpu_bo *xgmi_shared_bo; void *shared_buf;
uint64_t xgmi_shared_mc_addr;
void *xgmi_shared_buf;
struct psp_xgmi_topology_info top_info;
bool supports_extended_data;
};
struct psp_ras_context {
/*ras fw*/
bool ras_initialized;
uint32_t session_id;
struct amdgpu_bo *ras_shared_bo;
uint64_t ras_shared_mc_addr;
void *ras_shared_buf;
struct amdgpu_ras *ras;
}; };
struct psp_hdcp_context { struct ta_context {
bool hdcp_initialized; bool initialized;
uint32_t session_id; uint32_t session_id;
struct amdgpu_bo *hdcp_shared_bo; struct ta_mem_context mem_context;
uint64_t hdcp_shared_mc_addr;
void *hdcp_shared_buf;
struct mutex mutex;
}; };
struct psp_dtm_context { struct ta_cp_context {
bool dtm_initialized; struct ta_context context;
uint32_t session_id; struct mutex mutex;
struct amdgpu_bo *dtm_shared_bo;
uint64_t dtm_shared_mc_addr;
void *dtm_shared_buf;
struct mutex mutex;
}; };
struct psp_rap_context { struct psp_xgmi_context {
bool rap_initialized; struct ta_context context;
uint32_t session_id; struct psp_xgmi_topology_info top_info;
struct amdgpu_bo *rap_shared_bo; bool supports_extended_data;
uint64_t rap_shared_mc_addr;
void *rap_shared_buf;
struct mutex mutex;
}; };
struct psp_securedisplay_context { struct psp_ras_context {
bool securedisplay_initialized; struct ta_context context;
uint32_t session_id; struct amdgpu_ras *ras;
struct amdgpu_bo *securedisplay_shared_bo;
uint64_t securedisplay_shared_mc_addr;
void *securedisplay_shared_buf;
struct mutex mutex;
}; };
#define MEM_TRAIN_SYSTEM_SIGNATURE 0x54534942 #define MEM_TRAIN_SYSTEM_SIGNATURE 0x54534942
...@@ -364,10 +336,10 @@ struct psp_context ...@@ -364,10 +336,10 @@ struct psp_context
struct psp_asd_context asd_context; struct psp_asd_context asd_context;
struct psp_xgmi_context xgmi_context; struct psp_xgmi_context xgmi_context;
struct psp_ras_context ras_context; struct psp_ras_context ras_context;
struct psp_hdcp_context hdcp_context; struct ta_cp_context hdcp_context;
struct psp_dtm_context dtm_context; struct ta_cp_context dtm_context;
struct psp_rap_context rap_context; struct ta_cp_context rap_context;
struct psp_securedisplay_context securedisplay_context; struct ta_cp_context securedisplay_context;
struct mutex mutex; struct mutex mutex;
struct psp_memory_training_context mem_train_ctx; struct psp_memory_training_context mem_train_ctx;
......
...@@ -76,7 +76,7 @@ static ssize_t amdgpu_rap_debugfs_write(struct file *f, const char __user *buf, ...@@ -76,7 +76,7 @@ static ssize_t amdgpu_rap_debugfs_write(struct file *f, const char __user *buf,
dev_info(adev->dev, "RAP L0 validate test success.\n"); dev_info(adev->dev, "RAP L0 validate test success.\n");
} else { } else {
rap_shared_mem = (struct ta_rap_shared_memory *) rap_shared_mem = (struct ta_rap_shared_memory *)
adev->psp.rap_context.rap_shared_buf; adev->psp.rap_context.context.mem_context.shared_buf;
rap_cmd_output = &(rap_shared_mem->rap_out_message.output); rap_cmd_output = &(rap_shared_mem->rap_out_message.output);
dev_info(adev->dev, "RAP test failed, the output is:\n"); dev_info(adev->dev, "RAP test failed, the output is:\n");
...@@ -119,7 +119,7 @@ void amdgpu_rap_debugfs_init(struct amdgpu_device *adev) ...@@ -119,7 +119,7 @@ void amdgpu_rap_debugfs_init(struct amdgpu_device *adev)
#if defined(CONFIG_DEBUG_FS) #if defined(CONFIG_DEBUG_FS)
struct drm_minor *minor = adev_to_drm(adev)->primary; struct drm_minor *minor = adev_to_drm(adev)->primary;
if (!adev->psp.rap_context.rap_initialized) if (!adev->psp.rap_context.context.initialized)
return; return;
debugfs_create_file("rap_test", S_IWUSR, minor->debugfs_root, debugfs_create_file("rap_test", S_IWUSR, minor->debugfs_root,
......
...@@ -80,7 +80,7 @@ void psp_securedisplay_parse_resp_status(struct psp_context *psp, ...@@ -80,7 +80,7 @@ void psp_securedisplay_parse_resp_status(struct psp_context *psp,
void psp_prep_securedisplay_cmd_buf(struct psp_context *psp, struct securedisplay_cmd **cmd, void psp_prep_securedisplay_cmd_buf(struct psp_context *psp, struct securedisplay_cmd **cmd,
enum ta_securedisplay_command command_id) enum ta_securedisplay_command command_id)
{ {
*cmd = (struct securedisplay_cmd *)psp->securedisplay_context.securedisplay_shared_buf; *cmd = (struct securedisplay_cmd *)psp->securedisplay_context.context.mem_context.shared_buf;
memset(*cmd, 0, sizeof(struct securedisplay_cmd)); memset(*cmd, 0, sizeof(struct securedisplay_cmd));
(*cmd)->status = TA_SECUREDISPLAY_STATUS__GENERIC_FAILURE; (*cmd)->status = TA_SECUREDISPLAY_STATUS__GENERIC_FAILURE;
(*cmd)->cmd_id = command_id; (*cmd)->cmd_id = command_id;
...@@ -170,7 +170,7 @@ void amdgpu_securedisplay_debugfs_init(struct amdgpu_device *adev) ...@@ -170,7 +170,7 @@ void amdgpu_securedisplay_debugfs_init(struct amdgpu_device *adev)
{ {
#if defined(CONFIG_DEBUG_FS) #if defined(CONFIG_DEBUG_FS)
if (!adev->psp.securedisplay_context.securedisplay_initialized) if (!adev->psp.securedisplay_context.context.initialized)
return; return;
debugfs_create_file("securedisplay_test", S_IWUSR, adev_to_drm(adev)->primary->debugfs_root, debugfs_create_file("securedisplay_test", S_IWUSR, adev_to_drm(adev)->primary->debugfs_root,
......
...@@ -79,12 +79,12 @@ static uint8_t *psp_get_srm(struct psp_context *psp, uint32_t *srm_version, uint ...@@ -79,12 +79,12 @@ static uint8_t *psp_get_srm(struct psp_context *psp, uint32_t *srm_version, uint
struct ta_hdcp_shared_memory *hdcp_cmd; struct ta_hdcp_shared_memory *hdcp_cmd;
if (!psp->hdcp_context.hdcp_initialized) { if (!psp->hdcp_context.context.initialized) {
DRM_WARN("Failed to get hdcp srm. HDCP TA is not initialized."); DRM_WARN("Failed to get hdcp srm. HDCP TA is not initialized.");
return NULL; return NULL;
} }
hdcp_cmd = (struct ta_hdcp_shared_memory *)psp->hdcp_context.hdcp_shared_buf; hdcp_cmd = (struct ta_hdcp_shared_memory *)psp->hdcp_context.context.mem_context.shared_buf;
memset(hdcp_cmd, 0, sizeof(struct ta_hdcp_shared_memory)); memset(hdcp_cmd, 0, sizeof(struct ta_hdcp_shared_memory));
hdcp_cmd->cmd_id = TA_HDCP_COMMAND__HDCP_GET_SRM; hdcp_cmd->cmd_id = TA_HDCP_COMMAND__HDCP_GET_SRM;
...@@ -105,12 +105,12 @@ static int psp_set_srm(struct psp_context *psp, uint8_t *srm, uint32_t srm_size, ...@@ -105,12 +105,12 @@ static int psp_set_srm(struct psp_context *psp, uint8_t *srm, uint32_t srm_size,
struct ta_hdcp_shared_memory *hdcp_cmd; struct ta_hdcp_shared_memory *hdcp_cmd;
if (!psp->hdcp_context.hdcp_initialized) { if (!psp->hdcp_context.context.initialized) {
DRM_WARN("Failed to get hdcp srm. HDCP TA is not initialized."); DRM_WARN("Failed to get hdcp srm. HDCP TA is not initialized.");
return -EINVAL; return -EINVAL;
} }
hdcp_cmd = (struct ta_hdcp_shared_memory *)psp->hdcp_context.hdcp_shared_buf; hdcp_cmd = (struct ta_hdcp_shared_memory *)psp->hdcp_context.context.mem_context.shared_buf;
memset(hdcp_cmd, 0, sizeof(struct ta_hdcp_shared_memory)); memset(hdcp_cmd, 0, sizeof(struct ta_hdcp_shared_memory));
memcpy(hdcp_cmd->in_msg.hdcp_set_srm.srm_buf, srm, srm_size); memcpy(hdcp_cmd->in_msg.hdcp_set_srm.srm_buf, srm, srm_size);
...@@ -414,12 +414,12 @@ static bool enable_assr(void *handle, struct dc_link *link) ...@@ -414,12 +414,12 @@ static bool enable_assr(void *handle, struct dc_link *link)
struct ta_dtm_shared_memory *dtm_cmd; struct ta_dtm_shared_memory *dtm_cmd;
bool res = true; bool res = true;
if (!psp->dtm_context.dtm_initialized) { if (!psp->dtm_context.context.initialized) {
DRM_INFO("Failed to enable ASSR, DTM TA is not initialized."); DRM_INFO("Failed to enable ASSR, DTM TA is not initialized.");
return false; return false;
} }
dtm_cmd = (struct ta_dtm_shared_memory *)psp->dtm_context.dtm_shared_buf; dtm_cmd = (struct ta_dtm_shared_memory *)psp->dtm_context.context.mem_context.shared_buf;
mutex_lock(&psp->dtm_context.mutex); mutex_lock(&psp->dtm_context.mutex);
memset(dtm_cmd, 0, sizeof(struct ta_dtm_shared_memory)); memset(dtm_cmd, 0, sizeof(struct ta_dtm_shared_memory));
......
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