diff options
author | Christian König <christian.koenig@amd.com> | 2016-07-12 07:57:03 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-07-14 16:46:07 -0400 |
commit | 2ef004d984226fb6845481bc928ae37fb1dacc5e (patch) | |
tree | cf108cf6da68b481e69d42f939d00d23a42d7136 | |
parent | 090b767e97fcdabe8ecd71cf43e7d39d94e6cfef (diff) |
drm/amdgpu: always signal all fences
A little fallout from "drm/amdgpu: sanitize fence numbers", we
sometimes need to signal all fences in the ring.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c index e320b5b73ac6..0b109aebfec6 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | |||
@@ -204,10 +204,13 @@ void amdgpu_fence_process(struct amdgpu_ring *ring) | |||
204 | if (seq != ring->fence_drv.sync_seq) | 204 | if (seq != ring->fence_drv.sync_seq) |
205 | amdgpu_fence_schedule_fallback(ring); | 205 | amdgpu_fence_schedule_fallback(ring); |
206 | 206 | ||
207 | if (unlikely(seq == last_seq)) | ||
208 | return; | ||
209 | |||
207 | last_seq &= drv->num_fences_mask; | 210 | last_seq &= drv->num_fences_mask; |
208 | seq &= drv->num_fences_mask; | 211 | seq &= drv->num_fences_mask; |
209 | 212 | ||
210 | while (last_seq != seq) { | 213 | do { |
211 | struct fence *fence, **ptr; | 214 | struct fence *fence, **ptr; |
212 | 215 | ||
213 | ++last_seq; | 216 | ++last_seq; |
@@ -228,7 +231,7 @@ void amdgpu_fence_process(struct amdgpu_ring *ring) | |||
228 | BUG(); | 231 | BUG(); |
229 | 232 | ||
230 | fence_put(fence); | 233 | fence_put(fence); |
231 | } | 234 | } while (last_seq != seq); |
232 | } | 235 | } |
233 | 236 | ||
234 | /** | 237 | /** |