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

Commit 8c50e159 authored by Lloyd Atkinson's avatar Lloyd Atkinson Committed by Gerrit - the friendly Code Review server
Browse files

drm/msm/sde: don't gate frame done on ppsplit slave encoders



Fix to avoid adding pingpong split slave encoders to the virtual
encoder frame busy mask since they do not handle irqs, they will
prevent the frame done from firing.

CRs-Fixed: 2005394
Change-Id: I2f9604a6bd78405a2fdbe1127ae2519ca92c2665
Signed-off-by: default avatarLloyd Atkinson <latkinso@codeaurora.org>
parent 943c6703
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -777,6 +777,7 @@ static void _sde_encoder_kickoff_phys(struct sde_encoder_virt *sde_enc)
	/* don't perform flush/start operations for slave encoders */
	for (i = 0; i < sde_enc->num_phys_encs; i++) {
		struct sde_encoder_phys *phys = sde_enc->phys_encs[i];
		enum sde_rm_topology_name topology = SDE_RM_TOPOLOGY_UNKNOWN;

		if (!phys || phys->enable_state == SDE_ENC_DISABLED)
			continue;
@@ -785,6 +786,13 @@ static void _sde_encoder_kickoff_phys(struct sde_encoder_virt *sde_enc)
		if (!ctl)
			continue;

		if (phys->connector)
			topology = sde_connector_get_topology_name(
					phys->connector);

		/* don't wait on ppsplit slaves, they dont register irqs */
		if (!(topology == SDE_RM_TOPOLOGY_PPSPLIT &&
				phys->split_role == ENC_ROLE_SLAVE))
			set_bit(i, sde_enc->frame_busy_mask);

		if (!phys->ops.needs_single_flush ||