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

Commit ab6ea6fe authored by Sravan Kumar D.V.N's avatar Sravan Kumar D.V.N
Browse files

msm: mdss: Move PP programming after mdp wait for ping pong done



To ensure PP registers are not programming in the middle of the
frame transfer moving PP programming to after wait4pingpong
for command mode panel devices

Change-Id: Ie639a26543e2f20b61d6dfc73b3bcbd6a43b24be
Signed-off-by: default avatarSravan Kumar D.V.N <sravank1@codeaurora.org>
parent beb1eeec
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -5474,7 +5474,7 @@ int mdss_mdp_display_commit(struct mdss_mdp_ctl *ctl, void *arg,
		mdss_mdp_ctl_split_display_enable(split_lm_valid, ctl, sctl);

	ATRACE_BEGIN("postproc_programming");
	if (ctl->mfd && ctl->mfd->dcm_state != DTM_ENTER)
	if (ctl->is_video_mode && ctl->mfd && ctl->mfd->dcm_state != DTM_ENTER)
		/* postprocessing setup, including dspp */
		mdss_mdp_pp_setup_locked(ctl);

@@ -5520,6 +5520,24 @@ int mdss_mdp_display_commit(struct mdss_mdp_ctl *ctl, void *arg,
	if (ctl->ops.wait_pingpong && !mdata->serialize_wait4pp)
		mdss_mdp_display_wait4pingpong(ctl, false);

	/* Moved pp programming to post ping pong */
	if (!ctl->is_video_mode && ctl->mfd &&
			ctl->mfd->dcm_state != DTM_ENTER) {
		/* postprocessing setup, including dspp */
		mutex_lock(&ctl->flush_lock);
		mdss_mdp_pp_setup_locked(ctl);
		if (sctl) {
			if (ctl->split_flush_en) {
				ctl->flush_bits |= sctl->flush_bits;
				sctl->flush_bits = 0;
				sctl_flush_bits = 0;
			} else {
				sctl_flush_bits = sctl->flush_bits;
			}
		}
		ctl_flush_bits = ctl->flush_bits;
		mutex_unlock(&ctl->flush_lock);
	}
	/*
	 * if serialize_wait4pp is false then roi_bkup used in wait4pingpong
	 * will be of previous frame as expected.