Loading msm/dp/dp_display.c +1 −1 Original line number Diff line number Diff line Loading @@ -387,12 +387,12 @@ static void dp_display_hdcp_cb_work(struct work_struct *work) return; } dp_display_hdcp_register_streams(dp); status->hdcp_state = HDCP_STATE_AUTHENTICATING; if (ops && ops->reauthenticate) { rc = ops->reauthenticate(data); if (rc) pr_err("failed rc=%d\n", rc); } status->hdcp_state = HDCP_STATE_AUTHENTICATING; } else { pr_debug("not reauthenticating, cable disconnected\n"); } Loading msm/dp/dp_hdcp2p2.c +8 −2 Original line number Diff line number Diff line Loading @@ -196,16 +196,20 @@ static int dp_hdcp2p2_wakeup(struct hdcp_transport_wakeup_data *data) switch (data->cmd) { case HDCP_TRANSPORT_CMD_STATUS_SUCCESS: atomic_set(&ctrl->auth_state, HDCP_STATE_AUTHENTICATED); kfifo_put(&ctrl->cmd_q, data->cmd); wake_up(&ctrl->wait_q); break; case HDCP_TRANSPORT_CMD_STATUS_FAILED: atomic_set(&ctrl->auth_state, HDCP_STATE_AUTH_FAIL); kfifo_put(&ctrl->cmd_q, data->cmd); kthread_park(ctrl->thread); break; default: kfifo_put(&ctrl->cmd_q, data->cmd); wake_up(&ctrl->wait_q); break; } kfifo_put(&ctrl->cmd_q, data->cmd); wake_up(&ctrl->wait_q); exit: return 0; } Loading Loading @@ -310,6 +314,8 @@ static int dp_hdcp2p2_authenticate(void *input) ctrl->sink_status = SINK_CONNECTED; atomic_set(&ctrl->auth_state, HDCP_STATE_AUTHENTICATING); kthread_park(ctrl->thread); kfifo_reset(&ctrl->cmd_q); kthread_unpark(ctrl->thread); cdata.context = input; Loading msm/sde_hdcp_2x.c +7 −2 Original line number Diff line number Diff line Loading @@ -832,9 +832,16 @@ static int sde_hdcp_2x_wakeup(struct sde_hdcp_2x_wakeup_data *data) if (!atomic_cmpxchg(&hdcp->enable_pending, 0, 1)) { hdcp->device_type = data->device_type; kfifo_put(&hdcp->cmd_q, data->cmd); kthread_unpark(hdcp->thread); wake_up(&hdcp->wait_q); } break; case HDCP_2X_CMD_DISABLE: if (!atomic_xchg(&hdcp->hdcp_off, 1)) kfifo_put(&hdcp->cmd_q, HDCP_2X_CMD_STOP); kfifo_put(&hdcp->cmd_q, data->cmd); kthread_park(hdcp->thread); break; case HDCP_2X_CMD_STOP: atomic_set(&hdcp->hdcp_off, 1); Loading Loading @@ -929,8 +936,6 @@ static int sde_hdcp_2x_main(void *data) atomic_set(&hdcp->enable_pending, 0); break; case HDCP_2X_CMD_DISABLE: if (!atomic_xchg(&hdcp->hdcp_off, 1)) sde_hdcp_2x_clean(hdcp); sde_hdcp_2x_disable(hdcp); break; case HDCP_2X_CMD_START: Loading Loading
msm/dp/dp_display.c +1 −1 Original line number Diff line number Diff line Loading @@ -387,12 +387,12 @@ static void dp_display_hdcp_cb_work(struct work_struct *work) return; } dp_display_hdcp_register_streams(dp); status->hdcp_state = HDCP_STATE_AUTHENTICATING; if (ops && ops->reauthenticate) { rc = ops->reauthenticate(data); if (rc) pr_err("failed rc=%d\n", rc); } status->hdcp_state = HDCP_STATE_AUTHENTICATING; } else { pr_debug("not reauthenticating, cable disconnected\n"); } Loading
msm/dp/dp_hdcp2p2.c +8 −2 Original line number Diff line number Diff line Loading @@ -196,16 +196,20 @@ static int dp_hdcp2p2_wakeup(struct hdcp_transport_wakeup_data *data) switch (data->cmd) { case HDCP_TRANSPORT_CMD_STATUS_SUCCESS: atomic_set(&ctrl->auth_state, HDCP_STATE_AUTHENTICATED); kfifo_put(&ctrl->cmd_q, data->cmd); wake_up(&ctrl->wait_q); break; case HDCP_TRANSPORT_CMD_STATUS_FAILED: atomic_set(&ctrl->auth_state, HDCP_STATE_AUTH_FAIL); kfifo_put(&ctrl->cmd_q, data->cmd); kthread_park(ctrl->thread); break; default: kfifo_put(&ctrl->cmd_q, data->cmd); wake_up(&ctrl->wait_q); break; } kfifo_put(&ctrl->cmd_q, data->cmd); wake_up(&ctrl->wait_q); exit: return 0; } Loading Loading @@ -310,6 +314,8 @@ static int dp_hdcp2p2_authenticate(void *input) ctrl->sink_status = SINK_CONNECTED; atomic_set(&ctrl->auth_state, HDCP_STATE_AUTHENTICATING); kthread_park(ctrl->thread); kfifo_reset(&ctrl->cmd_q); kthread_unpark(ctrl->thread); cdata.context = input; Loading
msm/sde_hdcp_2x.c +7 −2 Original line number Diff line number Diff line Loading @@ -832,9 +832,16 @@ static int sde_hdcp_2x_wakeup(struct sde_hdcp_2x_wakeup_data *data) if (!atomic_cmpxchg(&hdcp->enable_pending, 0, 1)) { hdcp->device_type = data->device_type; kfifo_put(&hdcp->cmd_q, data->cmd); kthread_unpark(hdcp->thread); wake_up(&hdcp->wait_q); } break; case HDCP_2X_CMD_DISABLE: if (!atomic_xchg(&hdcp->hdcp_off, 1)) kfifo_put(&hdcp->cmd_q, HDCP_2X_CMD_STOP); kfifo_put(&hdcp->cmd_q, data->cmd); kthread_park(hdcp->thread); break; case HDCP_2X_CMD_STOP: atomic_set(&hdcp->hdcp_off, 1); Loading Loading @@ -929,8 +936,6 @@ static int sde_hdcp_2x_main(void *data) atomic_set(&hdcp->enable_pending, 0); break; case HDCP_2X_CMD_DISABLE: if (!atomic_xchg(&hdcp->hdcp_off, 1)) sde_hdcp_2x_clean(hdcp); sde_hdcp_2x_disable(hdcp); break; case HDCP_2X_CMD_START: Loading