aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_job.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_job.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
index 9b1c54ace583..42a4764d728e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
@@ -33,7 +33,7 @@ static void amdgpu_job_timedout(struct drm_sched_job *s_job)
33 struct amdgpu_ring *ring = to_amdgpu_ring(s_job->sched); 33 struct amdgpu_ring *ring = to_amdgpu_ring(s_job->sched);
34 struct amdgpu_job *job = to_amdgpu_job(s_job); 34 struct amdgpu_job *job = to_amdgpu_job(s_job);
35 35
36 DRM_ERROR("ring %s timeout, last signaled seq=%u, last emitted seq=%u\n", 36 DRM_ERROR("ring %s timeout, signaled seq=%u, emitted seq=%u\n",
37 job->base.sched->name, atomic_read(&ring->fence_drv.last_seq), 37 job->base.sched->name, atomic_read(&ring->fence_drv.last_seq),
38 ring->fence_drv.sync_seq); 38 ring->fence_drv.sync_seq);
39 39
@@ -166,16 +166,17 @@ static struct dma_fence *amdgpu_job_dependency(struct drm_sched_job *sched_job,
166 struct amdgpu_ring *ring = to_amdgpu_ring(s_entity->sched); 166 struct amdgpu_ring *ring = to_amdgpu_ring(s_entity->sched);
167 struct amdgpu_job *job = to_amdgpu_job(sched_job); 167 struct amdgpu_job *job = to_amdgpu_job(sched_job);
168 struct amdgpu_vm *vm = job->vm; 168 struct amdgpu_vm *vm = job->vm;
169 struct dma_fence *fence;
169 bool explicit = false; 170 bool explicit = false;
170 int r; 171 int r;
171 struct dma_fence *fence = amdgpu_sync_get_fence(&job->sync, &explicit);
172 172
173 fence = amdgpu_sync_get_fence(&job->sync, &explicit);
173 if (fence && explicit) { 174 if (fence && explicit) {
174 if (drm_sched_dependency_optimized(fence, s_entity)) { 175 if (drm_sched_dependency_optimized(fence, s_entity)) {
175 r = amdgpu_sync_fence(ring->adev, &job->sched_sync, 176 r = amdgpu_sync_fence(ring->adev, &job->sched_sync,
176 fence, false); 177 fence, false);
177 if (r) 178 if (r)
178 DRM_ERROR("Error adding fence to sync (%d)\n", r); 179 DRM_ERROR("Error adding fence (%d)\n", r);
179 } 180 }
180 } 181 }
181 182
@@ -199,10 +200,6 @@ static struct dma_fence *amdgpu_job_run(struct drm_sched_job *sched_job)
199 struct amdgpu_job *job; 200 struct amdgpu_job *job;
200 int r; 201 int r;
201 202
202 if (!sched_job) {
203 DRM_ERROR("job is null\n");
204 return NULL;
205 }
206 job = to_amdgpu_job(sched_job); 203 job = to_amdgpu_job(sched_job);
207 finished = &job->base.s_fence->finished; 204 finished = &job->base.s_fence->finished;
208 205