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

Commit e49fbdab 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: avoid scheduling pp work during continuous updates"

parents 76119a11 3eb48b40
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -643,6 +643,7 @@ struct mdss_mdp_ctl {


	/* vsync handler for FRC */
	/* vsync handler for FRC */
	struct mdss_mdp_vsync_handler frc_vsync_handler;
	struct mdss_mdp_vsync_handler frc_vsync_handler;
	bool commit_in_progress;
};
};


struct mdss_mdp_mixer {
struct mdss_mdp_mixer {
+11 −4
Original line number Original line Diff line number Diff line
@@ -5517,7 +5517,9 @@ int mdss_mdp_display_commit(struct mdss_mdp_ctl *ctl, void *arg,
		} else {
		} else {
			sctl_flush_bits = sctl->flush_bits;
			sctl_flush_bits = sctl->flush_bits;
		}
		}
		sctl->commit_in_progress = true;
	}
	}
	ctl->commit_in_progress = true;
	ctl_flush_bits = ctl->flush_bits;
	ctl_flush_bits = ctl->flush_bits;


	ATRACE_END("postproc_programming");
	ATRACE_END("postproc_programming");
@@ -5657,11 +5659,16 @@ int mdss_mdp_display_commit(struct mdss_mdp_ctl *ctl, void *arg,


	ATRACE_BEGIN("flush_kickoff");
	ATRACE_BEGIN("flush_kickoff");
	mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_FLUSH, ctl_flush_bits);
	mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_FLUSH, ctl_flush_bits);
	if (sctl && sctl_flush_bits) {
	if (sctl) {
		if (sctl_flush_bits) {
			mdss_mdp_ctl_write(sctl, MDSS_MDP_REG_CTL_FLUSH,
			mdss_mdp_ctl_write(sctl, MDSS_MDP_REG_CTL_FLUSH,
				sctl_flush_bits);
				sctl_flush_bits);
			sctl->flush_bits = 0;
			sctl->flush_bits = 0;
		}
		}
		sctl->commit_in_progress = false;
	}
	ctl->commit_in_progress = false;

	MDSS_XLOG(ctl->intf_num, ctl_flush_bits, sctl_flush_bits,
	MDSS_XLOG(ctl->intf_num, ctl_flush_bits, sctl_flush_bits,
		split_lm_valid);
		split_lm_valid);
	wmb();
	wmb();
+2 −1
Original line number Original line Diff line number Diff line
@@ -1206,6 +1206,7 @@ static void mdss_mdp_cmd_pingpong_done(void *arg)
			       atomic_read(&ctx->koff_cnt));
			       atomic_read(&ctx->koff_cnt));
		if (sync_ppdone) {
		if (sync_ppdone) {
			atomic_inc(&ctx->pp_done_cnt);
			atomic_inc(&ctx->pp_done_cnt);
			if (!ctl->commit_in_progress)
				schedule_work(&ctx->pp_done_work);
				schedule_work(&ctx->pp_done_work);


			mdss_mdp_resource_control(ctl,
			mdss_mdp_resource_control(ctl,