aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2018-07-16 07:47:34 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-07-18 17:18:43 -0400
commit9d46f32bdd3e9d4bf435c5ae50f72fb475bf0620 (patch)
tree1e51aa100e231cbd9ff50f376be1a7e421f1e816 /drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
parente6d5752080e2d069643d65b0db10c411f6b45412 (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.c3
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)