diff options
author | Christian König <christian.koenig@amd.com> | 2018-07-16 07:47:34 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-07-18 17:18:43 -0400 |
commit | 9d46f32bdd3e9d4bf435c5ae50f72fb475bf0620 (patch) | |
tree | 1e51aa100e231cbd9ff50f376be1a7e421f1e816 /drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | |
parent | e6d5752080e2d069643d65b0db10c411f6b45412 (diff) |
drm/amdgpu: allow for more flexible priority handling
Allow to call amdgpu_ring_priority_get() after pushing the ring to the
scheduler.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c index 19e45a3953e0..93794a85f83d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | |||
@@ -211,7 +211,8 @@ void amdgpu_ring_priority_get(struct amdgpu_ring *ring, | |||
211 | if (!ring->funcs->set_priority) | 211 | if (!ring->funcs->set_priority) |
212 | return; | 212 | return; |
213 | 213 | ||
214 | atomic_inc(&ring->num_jobs[priority]); | 214 | if (atomic_inc_return(&ring->num_jobs[priority]) <= 0) |
215 | return; | ||
215 | 216 | ||
216 | mutex_lock(&ring->priority_mutex); | 217 | mutex_lock(&ring->priority_mutex); |
217 | if (priority <= ring->priority) | 218 | if (priority <= ring->priority) |