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

Commit 8dd980c0 authored by Lynus Vaz's avatar Lynus Vaz Committed by Gerrit - the friendly Code Review server
Browse files

msm: kgsl: Keep the IRQ pending count accurate



If the IRQ pending count is incremented, make sure it is decremented
even in case of errors.

Change-Id: I63443d4430b24ff82eb58d729e42f7115607ff25
Signed-off-by: default avatarLynus Vaz <lvaz@codeaurora.org>
parent 873317b6
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -643,7 +643,7 @@ static irqreturn_t adreno_irq_handler(struct kgsl_device *device)
			if (fence_retries == FENCE_RETRY_MAX) {
			if (fence_retries == FENCE_RETRY_MAX) {
				KGSL_DRV_CRIT_RATELIMIT(device,
				KGSL_DRV_CRIT_RATELIMIT(device,
						"AHB fence stuck in ISR\n");
						"AHB fence stuck in ISR\n");
				return ret;
				goto done;
			}
			}
			fence_retries++;
			fence_retries++;
		} while (fence != 0);
		} while (fence != 0);
@@ -687,6 +687,7 @@ static irqreturn_t adreno_irq_handler(struct kgsl_device *device)
		adreno_writereg(adreno_dev, ADRENO_REG_RBBM_INT_CLEAR_CMD,
		adreno_writereg(adreno_dev, ADRENO_REG_RBBM_INT_CLEAR_CMD,
				int_bit);
				int_bit);


done:
	/* Turn off the KEEPALIVE vote from earlier unless hard fault set */
	/* Turn off the KEEPALIVE vote from earlier unless hard fault set */
	if (gpudev->gpu_keepalive) {
	if (gpudev->gpu_keepalive) {
		/* If hard fault, then let snapshot turn off the keepalive */
		/* If hard fault, then let snapshot turn off the keepalive */