diff --git a/drivers/gpu/msm/adreno_a6xx_preempt.c b/drivers/gpu/msm/adreno_a6xx_preempt.c index be69d3ce0024..dd80eeacc474 100644 --- a/drivers/gpu/msm/adreno_a6xx_preempt.c +++ b/drivers/gpu/msm/adreno_a6xx_preempt.c @@ -374,10 +374,14 @@ void a6xx_preemption_trigger(struct adreno_device *adreno_dev) return; err: /* If fenced write fails, take inline snapshot and trigger recovery */ - if (!in_interrupt()) + if (!in_interrupt()) { gmu_core_snapshot(device); + adreno_set_gpu_fault(adreno_dev, + ADRENO_GMU_FAULT_SKIP_SNAPSHOT); + } else { + adreno_set_gpu_fault(adreno_dev, ADRENO_GMU_FAULT); + } adreno_set_preempt_state(adreno_dev, ADRENO_PREEMPT_NONE); - adreno_set_gpu_fault(adreno_dev, ADRENO_GMU_FAULT_SKIP_SNAPSHOT); adreno_dispatcher_schedule(device); /* Clear the keep alive */ if (gmu_core_isenabled(device))