diff options
author | Christian König <christian.koenig@amd.com> | 2015-11-03 05:26:42 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-11-04 12:29:22 -0500 |
commit | 24372447e5cfe65d43a462acbf201c7882551b84 (patch) | |
tree | 06eab0e8de005833a44000d90fbc1f374cae726a /drivers/gpu/drm/amd | |
parent | 424839a6a913f2d2f473ce6d5b6465aeddf694db (diff) |
drm/amdgpu: fix fence fallback check
Interrupts are notorious unreliable, enable the fallback at
a couple of more places.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c index b912539420e4..2c485a22e14b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | |||
@@ -342,6 +342,7 @@ static bool amdgpu_fence_enable_signaling(struct fence *f) | |||
342 | fence->fence_wake.func = amdgpu_fence_check_signaled; | 342 | fence->fence_wake.func = amdgpu_fence_check_signaled; |
343 | __add_wait_queue(&ring->fence_drv.fence_queue, &fence->fence_wake); | 343 | __add_wait_queue(&ring->fence_drv.fence_queue, &fence->fence_wake); |
344 | fence_get(f); | 344 | fence_get(f); |
345 | amdgpu_fence_schedule_check(ring); | ||
345 | FENCE_TRACE(&fence->base, "armed on ring %i!\n", ring->idx); | 346 | FENCE_TRACE(&fence->base, "armed on ring %i!\n", ring->idx); |
346 | return true; | 347 | return true; |
347 | } | 348 | } |
@@ -367,6 +368,7 @@ static int amdgpu_fence_ring_wait_seq(struct amdgpu_ring *ring, uint64_t seq) | |||
367 | if (atomic64_read(&ring->fence_drv.last_seq) >= seq) | 368 | if (atomic64_read(&ring->fence_drv.last_seq) >= seq) |
368 | return 0; | 369 | return 0; |
369 | 370 | ||
371 | amdgpu_fence_schedule_check(ring); | ||
370 | wait_event(ring->fence_drv.fence_queue, ( | 372 | wait_event(ring->fence_drv.fence_queue, ( |
371 | (signaled = amdgpu_fence_seq_signaled(ring, seq)))); | 373 | (signaled = amdgpu_fence_seq_signaled(ring, seq)))); |
372 | 374 | ||