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

Commit 3a16976c authored by Puranam V G Tejaswi's avatar Puranam V G Tejaswi
Browse files

msm: kgsl: set GMU fault when fence does not come to allow mode



If fence does not come to allow mode even after waiting
for some time, we just return from adreno_irq_handler().
If GMU is in bad state and stuck, the fence may never
come to allow mode and we can never serve the interrupt.
The handler will be called multiple times and we can hog
the CPU. So if fence does not come to allow mode even
after waiting for sufficient time, consider GMU to be in
bad state. Set GMU fault and schedule dispatcher to
facilitate recovery.

Change-Id: I7b07c8c6021ee508c511d23351175019b6b1f778
Signed-off-by: default avatarPuranam V G Tejaswi <pvgtejas@codeaurora.org>
parent 5278bae1
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
/* Copyright (c) 2002,2007-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -654,6 +654,10 @@ static irqreturn_t adreno_irq_handler(struct kgsl_device *device)
					"Status=0x%x Unmasked status=0x%x Mask=0x%x\n",
					shadow_status & irq_params->mask,
					shadow_status, irq_params->mask);
				adreno_set_gpu_fault(adreno_dev,
						ADRENO_GMU_FAULT);
				adreno_dispatcher_schedule(KGSL_DEVICE
						(adreno_dev));
				goto done;
			}
			fence_retries++;