OSDN Git Service

drm/amd/display: Fix hdcp1 create session
authorBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Tue, 3 Dec 2019 20:47:53 +0000 (15:47 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 7 Jan 2020 17:13:13 +0000 (12:13 -0500)
[Why]
PSP needs session ID to destroy a session, In the case where we fail
create session we don't have a session ID

[How]
Set the session ID before returning

Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c

index 03476bb..8f2e2fe 100644 (file)
@@ -145,10 +145,11 @@ enum mod_hdcp_status mod_hdcp_hdcp1_create_session(struct mod_hdcp *hdcp)
 
        psp_hdcp_invoke(psp, hdcp_cmd->cmd_id);
 
+       hdcp->auth.id = hdcp_cmd->out_msg.hdcp1_create_session.session_handle;
+
        if (hdcp_cmd->hdcp_status != TA_HDCP_STATUS__SUCCESS)
                return MOD_HDCP_STATUS_HDCP1_CREATE_SESSION_FAILURE;
 
-       hdcp->auth.id = hdcp_cmd->out_msg.hdcp1_create_session.session_handle;
        hdcp->auth.msg.hdcp1.ainfo = hdcp_cmd->out_msg.hdcp1_create_session.ainfo_primary;
        memcpy(hdcp->auth.msg.hdcp1.aksv, hdcp_cmd->out_msg.hdcp1_create_session.aksv_primary,
                sizeof(hdcp->auth.msg.hdcp1.aksv));