diff --git a/msm/sde_hdcp_1x.c b/msm/sde_hdcp_1x.c index e321344ddf..ed32ffffa8 100644 --- a/msm/sde_hdcp_1x.c +++ b/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)