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

Commit 4381c344 authored by Sushmita Susheelendra's avatar Sushmita Susheelendra
Browse files

msm: kgsl: Fix message handling in hwsched hfi interrupt handler



Do not process HFI messages on the message queue in the interrupt
handler before interrupts are enabled on that queue. Otherwise, the
interrupt handler will read it off the queue, and then the inline
handler will not find any messages on the queue.

Change-Id: I569f29250c27a1a74e206489ad8234b2be39d448
Signed-off-by: default avatarSushmita Susheelendra <ssusheel@codeaurora.org>
parent 88cb36d3
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -234,6 +234,14 @@ static irqreturn_t a6xx_hwsched_hfi_handler(int irq, void *data)
	gmu_core_regread(device, A6XX_GMU_GMU2HOST_INTR_INFO, &status);
	gmu_core_regwrite(device, A6XX_GMU_GMU2HOST_INTR_CLR, hfi->irq_mask);

	/*
	 * If interrupts are not enabled on the HFI message queue,
	 * the inline message processing loop will process it,
	 * else, process it here.
	 */
	if (!(hfi->irq_mask & HFI_IRQ_MSGQ_MASK))
		status &= ~HFI_IRQ_MSGQ_MASK;

	if (status & HFI_IRQ_MSGQ_MASK)
		process_msgq_irq(adreno_dev);
	if (status & HFI_IRQ_DBGQ_MASK)