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

Commit 02ad85b5 authored by Rajat Gupta's avatar Rajat Gupta
Browse files

disp: msm: dp: skip attention requests on disconnect



Don't process any attention requests after hpd off. During automation
tests, scripts are doing a mst unplug after hpd off. But sometimes
disconnect thread freezes waiting for audio ack. During this freeze
unplug happens and uninstalls connector and free the panel and audio
objects due to which lock associated with completion variable causes an
exception.

Change-Id: I4038fd7debc383a96d60906eef17ec6e2163b326
Signed-off-by: default avatarRajat Gupta <rajatgu@codeaurora.org>
parent 155b0639
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -1437,6 +1437,12 @@ static void dp_display_attention_work(struct work_struct *work)
	mutex_lock(&dp->session_lock);
	mutex_lock(&dp->session_lock);
	SDE_EVT32_EXTERNAL(dp->state);
	SDE_EVT32_EXTERNAL(dp->state);


	if (dp_display_state_is(DP_STATE_ABORTED)) {
		DP_INFO("Hpd off, not handling any attention\n");
		mutex_unlock(&dp->session_lock);
		goto exit;
	}

	if (dp->debug->mst_hpd_sim || !dp_display_state_is(DP_STATE_READY)) {
	if (dp->debug->mst_hpd_sim || !dp_display_state_is(DP_STATE_READY)) {
		mutex_unlock(&dp->session_lock);
		mutex_unlock(&dp->session_lock);
		goto mst_attention;
		goto mst_attention;
@@ -1528,6 +1534,7 @@ static void dp_display_attention_work(struct work_struct *work)


mst_attention:
mst_attention:
	dp_display_mst_attention(dp);
	dp_display_mst_attention(dp);
exit:
	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
}
}