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

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

Merge "msm: mdss: Display prepare unblock for writeback path"

parents dee5ada1 7b1fade5
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1014,7 +1014,8 @@ void mdss_mdp_crop_rect(struct mdss_rect *src_rect,
	const struct mdss_rect *sci_rect);


int mdss_mdp_wb_kickoff(struct msm_fb_data_type *mfd);
int mdss_mdp_wb_kickoff(struct msm_fb_data_type *mfd,
		struct mdss_mdp_commit_cb *commit_cb);
int mdss_mdp_wb_ioctl_handler(struct msm_fb_data_type *mfd, u32 cmd, void *arg);

int mdss_mdp_get_ctl_mixers(u32 fb_num, u32 *mixer_id);
+16 −10
Original line number Diff line number Diff line
@@ -1707,19 +1707,25 @@ int mdss_mdp_overlay_kickoff(struct msm_fb_data_type *mfd,

	if (mfd->panel.type == WRITEBACK_PANEL) {
		ATRACE_BEGIN("wb_kickoff");
		ret = mdss_mdp_wb_kickoff(mfd);
		if (!need_cleanup) {
			commit_cb.commit_cb_fnc = mdss_mdp_commit_cb;
			commit_cb.data = mfd;
			ret = mdss_mdp_wb_kickoff(mfd, &commit_cb);
		} else {
			mdss_mdp_wb_kickoff(mfd, NULL);
		}
		ATRACE_END("wb_kickoff");
	} else if (!need_cleanup) {
	} else {
		ATRACE_BEGIN("display_commit");
		if (!need_cleanup) {
			commit_cb.commit_cb_fnc = mdss_mdp_commit_cb;
			commit_cb.data = mfd;
			ret = mdss_mdp_display_commit(mdp5_data->ctl, NULL,
				&commit_cb);
		ATRACE_END("display_commit");
		} else  {
		ATRACE_BEGIN("display_commit");
			ret = mdss_mdp_display_commit(mdp5_data->ctl, NULL,
				NULL);
		}
		ATRACE_END("display_commit");
	}

+12 −1
Original line number Diff line number Diff line
@@ -628,7 +628,8 @@ static int mdss_mdp_wb_dequeue(struct msm_fb_data_type *mfd,
	return ret;
}

int mdss_mdp_wb_kickoff(struct msm_fb_data_type *mfd)
int mdss_mdp_wb_kickoff(struct msm_fb_data_type *mfd,
		struct mdss_mdp_commit_cb *commit_cb)
{
	struct mdss_mdp_wb *wb = mfd_to_wb(mfd);
	struct mdss_mdp_ctl *ctl = mfd_to_ctl(mfd);
@@ -682,8 +683,18 @@ int mdss_mdp_wb_kickoff(struct msm_fb_data_type *mfd)
		pr_err("error on commit ctl=%d\n", ctl->num);
		goto kickoff_fail;
	}

	if (commit_cb)
		commit_cb->commit_cb_fnc(
			MDP_COMMIT_STAGE_SETUP_DONE,
			commit_cb->data);

	mdss_mdp_display_wait4comp(ctl);

	if (commit_cb)
		commit_cb->commit_cb_fnc(MDP_COMMIT_STAGE_READY_FOR_KICKOFF,
			commit_cb->data);

	if (wb && node) {
		mutex_lock(&wb->lock);
		list_add_tail(&node->active_entry, &wb->busy_queue);