diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_job.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 11 |
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 | ||