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

Commit 85c2afd5 authored by Jayaprakash's avatar Jayaprakash
Browse files

disp: msm: sde: avoid solver mode if autorefresh is enabled



In dual display with continuous splash, when autorefresh gets
disabled in primary on first commit, solver mode gets enabled
and mdp_clock is gated whenever primary enters idle. The
secondary data path will get gated during that time and not advance
anymore. Asynchronous gating of the mdp_clock during operation
can also hang the secondary path. This change avoids entering
the solver mode which fixes the timeout in the autorefresh
disable sequence in the secondary.

Change-Id: I7562ce2ad72d3bb8e8b6b8f356fab6def0caaf92
Signed-off-by: default avatarJayaprakash <jmadiset@codeaurora.org>
parent 5c49ac43
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1950,6 +1950,7 @@ static int _sde_encoder_update_rsc_client(
	bool is_vid_mode;
	struct msm_drm_private *priv;
	struct sde_kms *sde_kms;
	struct drm_encoder *enc;

	if (!drm_enc || !drm_enc->dev) {
		SDE_ERROR("invalid encoder arguments\n");
@@ -2000,6 +2001,12 @@ static int _sde_encoder_update_rsc_client(
	else if (sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_VIDEO_MODE))
		rsc_state = enable ? SDE_RSC_VID_STATE : SDE_RSC_IDLE_STATE;

	drm_for_each_encoder(enc, drm_enc->dev) {
		if (enc->base.id != drm_enc->base.id &&
			 sde_encoder_in_cont_splash(enc))
			rsc_state = SDE_RSC_CLK_STATE;
	}

	if (IS_SDE_MAJOR_SAME(sde_kms->core_rev, SDE_HW_VER_600) &&
			 (rsc_state == SDE_RSC_VID_STATE))
		rsc_state = SDE_RSC_CLK_STATE;