diff options
Diffstat (limited to 'drivers/gpu/drm/etnaviv/etnaviv_sched.c')
-rw-r--r-- | drivers/gpu/drm/etnaviv/etnaviv_sched.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c index e7c3ed6c9a2e..49a6763693f1 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c | |||
@@ -93,7 +93,7 @@ static void etnaviv_sched_timedout_job(struct drm_sched_job *sched_job) | |||
93 | * If the GPU managed to complete this jobs fence, the timout is | 93 | * If the GPU managed to complete this jobs fence, the timout is |
94 | * spurious. Bail out. | 94 | * spurious. Bail out. |
95 | */ | 95 | */ |
96 | if (fence_completed(gpu, submit->out_fence->seqno)) | 96 | if (dma_fence_is_signaled(submit->out_fence)) |
97 | return; | 97 | return; |
98 | 98 | ||
99 | /* | 99 | /* |
@@ -105,8 +105,6 @@ static void etnaviv_sched_timedout_job(struct drm_sched_job *sched_job) | |||
105 | change = dma_addr - gpu->hangcheck_dma_addr; | 105 | change = dma_addr - gpu->hangcheck_dma_addr; |
106 | if (change < 0 || change > 16) { | 106 | if (change < 0 || change > 16) { |
107 | gpu->hangcheck_dma_addr = dma_addr; | 107 | gpu->hangcheck_dma_addr = dma_addr; |
108 | schedule_delayed_work(&sched_job->sched->work_tdr, | ||
109 | sched_job->sched->timeout); | ||
110 | return; | 108 | return; |
111 | } | 109 | } |
112 | 110 | ||
@@ -127,6 +125,8 @@ static void etnaviv_sched_free_job(struct drm_sched_job *sched_job) | |||
127 | { | 125 | { |
128 | struct etnaviv_gem_submit *submit = to_etnaviv_submit(sched_job); | 126 | struct etnaviv_gem_submit *submit = to_etnaviv_submit(sched_job); |
129 | 127 | ||
128 | drm_sched_job_cleanup(sched_job); | ||
129 | |||
130 | etnaviv_submit_put(submit); | 130 | etnaviv_submit_put(submit); |
131 | } | 131 | } |
132 | 132 | ||
@@ -159,6 +159,7 @@ int etnaviv_sched_push_job(struct drm_sched_entity *sched_entity, | |||
159 | submit->out_fence, 0, | 159 | submit->out_fence, 0, |
160 | INT_MAX, GFP_KERNEL); | 160 | INT_MAX, GFP_KERNEL); |
161 | if (submit->out_fence_id < 0) { | 161 | if (submit->out_fence_id < 0) { |
162 | drm_sched_job_cleanup(&submit->sched_job); | ||
162 | ret = -ENOMEM; | 163 | ret = -ENOMEM; |
163 | goto out_unlock; | 164 | goto out_unlock; |
164 | } | 165 | } |