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

Commit 58c2db27 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: display: only release kickoff when no cleanup pipe"

parents 74e7370b 2ea80fb0
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -1294,6 +1294,7 @@ int mdss_mdp_overlay_kickoff(struct msm_fb_data_type *mfd,
	struct mdp_display_commit temp_data;
	int ret = 0;
	int sd_in_pipe = 0;
	bool need_cleanup = false;

	ATRACE_BEGIN(__func__);
	if (ctl->shared_lock) {
@@ -1350,6 +1351,7 @@ int mdss_mdp_overlay_kickoff(struct msm_fb_data_type *mfd,
		mdss_mdp_pipe_queue_data(pipe, NULL);
		mdss_mdp_mixer_pipe_unstage(pipe, pipe->mixer_left);
		mdss_mdp_mixer_pipe_unstage(pipe, pipe->mixer_right);
		need_cleanup = true;
	}

	ATRACE_BEGIN("sspp_programming");
@@ -1367,8 +1369,10 @@ int mdss_mdp_overlay_kickoff(struct msm_fb_data_type *mfd,
		ATRACE_END("display_commit");
	}

	if (!need_cleanup) {
		atomic_set(&mfd->kickoff_pending, 0);
		wake_up_all(&mfd->kickoff_wait_q);
	}

	if (IS_ERR_VALUE(ret))
		goto commit_fail;
@@ -1396,7 +1400,10 @@ commit_fail:
	ATRACE_END("overlay_cleanup");
	mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF, false);
	mdss_mdp_ctl_notify(ctl, MDP_NOTIFY_FRAME_FLUSHED);

	if (need_cleanup) {
		atomic_set(&mfd->kickoff_pending, 0);
		wake_up_all(&mfd->kickoff_wait_q);
	}
	mutex_unlock(&mdp5_data->ov_lock);
	if (ctl->shared_lock)
		mutex_unlock(ctl->shared_lock);