From: Rob Clark Date: Thu, 17 Mar 2016 14:18:38 +0000 (-0400) Subject: drm/msm: fix ->last_fence() after recover X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=2755734390c18ca33d9755c9caa2685567563c19;p=linux-beck.git drm/msm: fix ->last_fence() after recover It is no longer true that we discard all in-flight submits on recover (these days we only discard the first one that hung). After the first re-submitted batch completes it would overwrite the fence with a correct value, but there would be a window of time which showed all re-submitted batches as already complete. Signed-off-by: Rob Clark --- diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c index 95aed377b933..1d5a714d24a6 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -120,8 +120,8 @@ void adreno_recover(struct msm_gpu *gpu) /* reset ringbuffer: */ gpu->rb->cur = gpu->rb->start; - /* reset completed fence seqno, just discard anything pending: */ - adreno_gpu->memptrs->fence = gpu->fctx->last_fence; + /* reset completed fence seqno: */ + adreno_gpu->memptrs->fence = gpu->fctx->completed_fence; adreno_gpu->memptrs->rptr = 0; adreno_gpu->memptrs->wptr = 0;