Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01decae7 authored by Tatenda Chipeperekwa's avatar Tatenda Chipeperekwa Committed by Aravind Venkateswaran
Browse files

drm/msm/dp: remove session lock from HDCP status update



Remove the session lock from the HDCP status update method
as acquiring the session lock can result in a deadlock if
a disconnect event is triggered simultaneously. We should
instead rely on the propagation of state to the HDCP
library in order to handle connect/disconnect concurrency.

CRs-Fixed: 2349914
Change-Id: I98b23af1080adfe4b0d607045ecad23577c69446
Signed-off-by: default avatarTatenda Chipeperekwa <tatendac@codeaurora.org>
parent 7783b9b8
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -260,7 +260,7 @@ static void dp_display_hdcp_cb_work(struct work_struct *work)

	dp = container_of(dw, struct dp_display_private, hdcp_cb_work);

	if (!dp->power_on || atomic_read(&dp->aborted))
	if (!dp->power_on || !dp->is_connected || atomic_read(&dp->aborted))
		return;

	status = &dp->link->hdcp_status;
@@ -327,10 +327,7 @@ static void dp_display_notify_hdcp_status_cb(void *ptr,

	dp->link->hdcp_status.hdcp_state = state;

	mutex_lock(&dp->session_lock);
	if (dp->power_on && !atomic_read(&dp->aborted))
	queue_delayed_work(dp->wq, &dp->hdcp_cb_work, HZ/4);
	mutex_unlock(&dp->session_lock);
}

static void dp_display_deinitialize_hdcp(struct dp_display_private *dp)