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

Commit 720d0be3 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: serialize wait for pingpong with kickoff"

parents d2dba928 ecd54f1f
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -2179,6 +2179,7 @@ int mdss_mdp_cmd_set_autorefresh_mode(struct mdss_mdp_ctl *mctl, int frame_cnt)
		 */
		ctx->autorefresh_state = MDP_AUTOREFRESH_ON_REQUESTED;
		ctx->autorefresh_frame_cnt = frame_cnt;
		mctl->mdata->serialize_wait4pp = true;

		/* Cancel GATE Work Item */
		if (cancel_work_sync(&ctx->gate_clk_work))
@@ -2192,8 +2193,10 @@ int mdss_mdp_cmd_set_autorefresh_mode(struct mdss_mdp_ctl *mctl, int frame_cnt)
		if (frame_cnt == 0) {
			ctx->autorefresh_state = MDP_AUTOREFRESH_OFF;
			ctx->autorefresh_frame_cnt = 0;
			mctl->mdata->serialize_wait4pp = false;
		} else {
			ctx->autorefresh_frame_cnt = frame_cnt;
			mctl->mdata->serialize_wait4pp = true;
		}
		break;
	case MDP_AUTOREFRESH_ON:
@@ -2205,6 +2208,7 @@ int mdss_mdp_cmd_set_autorefresh_mode(struct mdss_mdp_ctl *mctl, int frame_cnt)
			ctx->autorefresh_state = MDP_AUTOREFRESH_OFF_REQUESTED;
		} else {
			ctx->autorefresh_frame_cnt = frame_cnt;
			mctl->mdata->serialize_wait4pp = true;
		}
		break;
	case MDP_AUTOREFRESH_OFF_REQUESTED:
@@ -2214,6 +2218,7 @@ int mdss_mdp_cmd_set_autorefresh_mode(struct mdss_mdp_ctl *mctl, int frame_cnt)
			pr_debug("cancelling autorefresh off request\n");
			ctx->autorefresh_state = MDP_AUTOREFRESH_ON;
			ctx->autorefresh_frame_cnt = frame_cnt;
			mctl->mdata->serialize_wait4pp = true;
		}
		break;
	default:
@@ -2324,7 +2329,7 @@ static void mdss_mdp_cmd_wait4_autorefresh_pp(struct mdss_mdp_ctl *ctl)

	MDSS_XLOG(ctl->num, line_out, ctl->mixer_left->roi.h);

	if (line_out < ctl->mixer_left->roi.h) {
	if ((line_out < ctl->mixer_left->roi.h) && line_out) {
		reinit_completion(&ctx->autorefresh_ppdone);

		/* enable ping pong done */
@@ -2576,6 +2581,7 @@ static int mdss_mdp_disable_autorefresh(struct mdss_mdp_ctl *ctl,
	mdss_mdp_pingpong_write(pp_base,
				MDSS_MDP_REG_PP_SYNC_CONFIG_VSYNC, cfg);

	ctl->mdata->serialize_wait4pp = false;
	return 0;
}