diff options
author | Christian König <christian.koenig@amd.com> | 2016-02-11 08:42:33 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-02-16 17:22:16 -0500 |
commit | 9b3896686fab2be860500ab44770071f15873aa1 (patch) | |
tree | e34b86ea09e44f78b8750277513688ed05eb4b03 /drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | |
parent | fa5b5000308136ad61a33126d8ad380cf1fef016 (diff) |
drm/amdgpu: remove fence reset detection leftovers
wait_event() never returns before the fence was signaled.
Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c index 72105020086c..97db196dc6f8 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | |||
@@ -260,19 +260,16 @@ static bool amdgpu_fence_seq_signaled(struct amdgpu_ring *ring, u64 seq) | |||
260 | } | 260 | } |
261 | 261 | ||
262 | /* | 262 | /* |
263 | * amdgpu_ring_wait_seq_timeout - wait for seq of the specific ring to signal | 263 | * amdgpu_ring_wait_seq - wait for seq of the specific ring to signal |
264 | * @ring: ring to wait on for the seq number | 264 | * @ring: ring to wait on for the seq number |
265 | * @seq: seq number wait for | 265 | * @seq: seq number wait for |
266 | * | 266 | * |
267 | * return value: | 267 | * return value: |
268 | * 0: seq signaled, and gpu not hang | 268 | * 0: seq signaled, and gpu not hang |
269 | * -EDEADL: GPU hang detected | ||
270 | * -EINVAL: some paramter is not valid | 269 | * -EINVAL: some paramter is not valid |
271 | */ | 270 | */ |
272 | static int amdgpu_fence_ring_wait_seq(struct amdgpu_ring *ring, uint64_t seq) | 271 | static int amdgpu_fence_ring_wait_seq(struct amdgpu_ring *ring, uint64_t seq) |
273 | { | 272 | { |
274 | bool signaled = false; | ||
275 | |||
276 | BUG_ON(!ring); | 273 | BUG_ON(!ring); |
277 | if (seq > ring->fence_drv.sync_seq) | 274 | if (seq > ring->fence_drv.sync_seq) |
278 | return -EINVAL; | 275 | return -EINVAL; |
@@ -281,13 +278,10 @@ static int amdgpu_fence_ring_wait_seq(struct amdgpu_ring *ring, uint64_t seq) | |||
281 | return 0; | 278 | return 0; |
282 | 279 | ||
283 | amdgpu_fence_schedule_fallback(ring); | 280 | amdgpu_fence_schedule_fallback(ring); |
284 | wait_event(ring->fence_drv.fence_queue, ( | 281 | wait_event(ring->fence_drv.fence_queue, |
285 | (signaled = amdgpu_fence_seq_signaled(ring, seq)))); | 282 | amdgpu_fence_seq_signaled(ring, seq)); |
286 | 283 | ||
287 | if (signaled) | 284 | return 0; |
288 | return 0; | ||
289 | else | ||
290 | return -EDEADLK; | ||
291 | } | 285 | } |
292 | 286 | ||
293 | /** | 287 | /** |