summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSharat Masetty <smasetty@codeaurora.org>2017-04-06 15:43:14 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2017-04-11 23:59:17 -0700
commitba1ad633396bafc23cabfea286f14f4930a07d02 (patch)
treed1866719bedb25ffa925170b467efa7e68dbf68a
parent4901c7fce456a3ad5d80836000539674a885913e (diff)
drm/msm: Re-trigger preemption upon command completion
Trigger preemption from the interrupt handler. This allows us to aggressively change ringbuffers especially to lower priority ones and finish working on pending commands. Change-Id: Ic05213f3d02b1bb7400461edd0d19e38d5b01ec2 Signed-off-by: Sharat Masetty <smasetty@codeaurora.org>
-rw-r--r--drivers/gpu/drm/msm/adreno/a5xx_gpu.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
index 5b2c7e77771c..32b2c7fab839 100644
--- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
@@ -1039,8 +1039,10 @@ static irqreturn_t a5xx_irq(struct msm_gpu *gpu)
if (status & A5XX_RBBM_INT_0_MASK_GPMU_VOLTAGE_DROOP)
a5xx_gpmu_err_irq(gpu);
- if (status & A5XX_RBBM_INT_0_MASK_CP_CACHE_FLUSH_TS)
+ if (status & A5XX_RBBM_INT_0_MASK_CP_CACHE_FLUSH_TS) {
+ a5xx_preempt_trigger(gpu);
msm_gpu_retire(gpu);
+ }
if (status & A5XX_RBBM_INT_0_MASK_CP_SW)
a5xx_preempt_irq(gpu);