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

Commit 3136b28e authored by Jayant Shekhar's avatar Jayant Shekhar
Browse files

drm/msm/sde: Correct vblank ref count in case of failures



If register IRQ fails, correct vblank ref counts so that
IRQ registration can be tried again.

Change-Id: I4bc0864f182da6ef1a8f1ab5e36892d8201b1195
Signed-off-by: default avatarJayant Shekhar <jshekhar@codeaurora.org>
parent af3795d2
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -645,11 +645,17 @@ static int sde_encoder_phys_vid_control_vblank_irq(
	SDE_EVT32(DRMID(phys_enc->parent), enable,
			atomic_read(&phys_enc->vblank_refcount));

	if (enable && atomic_inc_return(&phys_enc->vblank_refcount) == 1)
	if (enable && atomic_inc_return(&phys_enc->vblank_refcount) == 1) {
		ret = sde_encoder_helper_register_irq(phys_enc, INTR_IDX_VSYNC);
	else if (!enable && atomic_dec_return(&phys_enc->vblank_refcount) == 0)
		if (ret)
			atomic_dec_return(&phys_enc->vblank_refcount);
	} else if (!enable &&
			atomic_dec_return(&phys_enc->vblank_refcount) == 0) {
		ret = sde_encoder_helper_unregister_irq(phys_enc,
				INTR_IDX_VSYNC);
		if (ret)
			atomic_inc_return(&phys_enc->vblank_refcount);
	}

end:
	if (ret) {