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

Commit a89b14cb authored by Veera Sundaram Sankaran's avatar Veera Sundaram Sankaran Committed by Gerrit - the friendly Code Review server
Browse files

msm: mdss: fix autorefresh configs for pp-split cases



Configure autorefresh in the slave pingpong register too
when autorefresh is enabled along with pp-split.

Change-Id: I3dc51f99018bb7a97fa01cd9aebe50d63671261e
Signed-off-by: default avatarVeera Sundaram Sankaran <veeras@codeaurora.org>
parent 1cb34120
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -2559,6 +2559,11 @@ static int mdss_mdp_disable_autorefresh(struct mdss_mdp_ctl *ctl,

	/* disable autorefresh */
	mdss_mdp_pingpong_write(pp_base, MDSS_MDP_REG_PP_AUTOREFRESH_CONFIG, 0);

	if (is_pingpong_split(ctl->mfd))
		mdss_mdp_pingpong_write(mdata->slave_pingpong_base,
				MDSS_MDP_REG_PP_AUTOREFRESH_CONFIG, 0);

	ctx->autorefresh_state = MDP_AUTOREFRESH_OFF;
	ctx->autorefresh_frame_cnt = 0;

@@ -2576,6 +2581,9 @@ static int mdss_mdp_disable_autorefresh(struct mdss_mdp_ctl *ctl,
static void __mdss_mdp_kickoff(struct mdss_mdp_ctl *ctl,
	struct mdss_mdp_cmd_ctx *ctx)
{
	struct mdss_data_type *mdata = mdss_mdp_get_mdata();
	bool is_pp_split = is_pingpong_split(ctl->mfd);

	MDSS_XLOG(ctx->autorefresh_state);

	if ((ctx->autorefresh_state == MDP_AUTOREFRESH_ON_REQUESTED) ||
@@ -2588,8 +2596,14 @@ static void __mdss_mdp_kickoff(struct mdss_mdp_ctl *ctl,
		mdss_mdp_pingpong_write(ctl->mixer_left->pingpong_base,
			MDSS_MDP_REG_PP_AUTOREFRESH_CONFIG,
			BIT(31) | ctx->autorefresh_frame_cnt);

		if (is_pp_split)
			mdss_mdp_pingpong_write(mdata->slave_pingpong_base,
				MDSS_MDP_REG_PP_AUTOREFRESH_CONFIG,
				BIT(31) | ctx->autorefresh_frame_cnt);

		MDSS_XLOG(0x11, ctx->autorefresh_frame_cnt,
			ctx->autorefresh_state);
			ctx->autorefresh_state, is_pp_split);
		ctx->autorefresh_state = MDP_AUTOREFRESH_ON;

	} else {