Browse Source

disp: msm: hdcp: reset authentication state for client initiated abort

Return EINVAL upon early exit/abort of authentication and
reset the authentication state.

Change-Id: I4862bbe55301eabef2a83849a551eb948f73569b
Signed-off-by: Rajat Gupta <[email protected]>
Signed-off-by: Tatenda Chipeperekwa <[email protected]>
Rajat Gupta 5 years ago
parent
commit
84424a93e3
1 changed files with 5 additions and 1 deletions
  1. 5 1
      msm/sde_hdcp_1x.c

+ 5 - 1
msm/sde_hdcp_1x.c

@@ -1057,8 +1057,10 @@ static void sde_hdcp_1x_auth_work(struct work_struct *work)
 		return;
 	}
 
-	if (atomic_read(&hdcp->abort))
+	if (atomic_read(&hdcp->abort)) {
+		rc = -EINVAL;
 		goto end;
+	}
 
 	hdcp->sink_r0_ready = false;
 	hdcp->reauth = false;
@@ -1495,6 +1497,8 @@ static void sde_hdcp_1x_abort(void *data, bool abort)
 	atomic_set(&hdcp->abort, abort);
 	cancel_delayed_work_sync(&hdcp->hdcp_auth_work);
 	flush_workqueue(hdcp->workq);
+	if (sde_hdcp_1x_state(HDCP_STATE_AUTHENTICATING))
+		hdcp->hdcp_state = HDCP_STATE_AUTH_FAIL;
 }
 
 void *sde_hdcp_1x_init(struct sde_hdcp_init_data *init_data)