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

Commit 0babac43 authored by Jeevan Shriram's avatar Jeevan Shriram
Browse files

mdss: mdp: wait for pingpong done for second control



In the current implementation, we are waiting for ping pong
interrupt only for the first control. There is a possibility
that the second control takes more time than the first. As the
commit call is asynchronous next kickoff could get triggered.
This causes dsi fifo to underflow and eventually pingpong timeout
are observed.

This change fixes the issue by waiting for second control's
pingpong done interrupt, to ensure that the tx to dsi
controller is complete before the next commit is triggered.

Change-Id: Ie8caf36744b3f5860962ad30d19d61d0a6de2763
Signed-off-by: default avatarJeevan Shriram <jshriram@codeaurora.org>
parent 55ca3fcf
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -593,8 +593,7 @@ static void mdss_mdp_cmd_set_sync_ctx(

	ctx = (struct mdss_mdp_cmd_ctx *)ctl->priv_data;

	if (!ctl->panel_data->panel_info.partial_update_enabled || !sctl) {
		/* not partial or right only at partial update */
	if (!sctl) {
		ctx->sync_ctx = NULL;
		return;
	}
@@ -663,10 +662,8 @@ int mdss_mdp_cmd_kickoff(struct mdss_mdp_ctl *ctl, void *arg)
		return -ENODEV;
	}

	if (ctl->panel_data->panel_info.partial_update_enabled) {
		/* sctl will be null for right only */
	/* sctl will be null for right only in the case of Partial update */
	sctl = mdss_mdp_get_split_ctl(ctl);
	}

	if (sctl && (sctl->roi.w == 0 || sctl->roi.h == 0)) {
		/* left update only */