aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJammy Zhou2015-07-09 00:51:13 -0500
committerAlex Deucher2015-08-05 12:47:52 -0500
commitf91b56dc8c604ec1c6f092d69550266d20dc9764 (patch)
tree6952e5b6e93f94a4dc8edb1889e532c229370c9b /amdgpu/amdgpu_cs.c
parent12802da74f0e480bbde5a11df689329910893e87 (diff)
downloadexternal-libgbm-f91b56dc8c604ec1c6f092d69550266d20dc9764.tar.gz
external-libgbm-f91b56dc8c604ec1c6f092d69550266d20dc9764.tar.xz
external-libgbm-f91b56dc8c604ec1c6f092d69550266d20dc9764.zip
amdgpu: improve the amdgpu_cs_query_fence_status interface
make amdgpu_cs_query_fence reusable to support multi-fence query Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
Diffstat (limited to 'amdgpu/amdgpu_cs.c')
-rw-r--r--amdgpu/amdgpu_cs.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/amdgpu/amdgpu_cs.c b/amdgpu/amdgpu_cs.c
index 15645274..03b17819 100644
--- a/amdgpu/amdgpu_cs.c
+++ b/amdgpu/amdgpu_cs.c
@@ -380,6 +380,8 @@ static int amdgpu_ioctl_wait_cs(amdgpu_context_handle context,
380} 380}
381 381
382int amdgpu_cs_query_fence_status(struct amdgpu_cs_query_fence *fence, 382int amdgpu_cs_query_fence_status(struct amdgpu_cs_query_fence *fence,
383 uint64_t timeout_ns,
384 uint64_t flags,
383 uint32_t *expired) 385 uint32_t *expired)
384{ 386{
385 amdgpu_context_handle context; 387 amdgpu_context_handle context;
@@ -430,7 +432,7 @@ int amdgpu_cs_query_fence_status(struct amdgpu_cs_query_fence *fence,
430 } 432 }
431 433
432 /* Checking the user fence is enough. */ 434 /* Checking the user fence is enough. */
433 if (fence->timeout_ns == 0) { 435 if (timeout_ns == 0) {
434 pthread_mutex_unlock(&context->sequence_mutex); 436 pthread_mutex_unlock(&context->sequence_mutex);
435 return 0; 437 return 0;
436 } 438 }
@@ -439,8 +441,8 @@ int amdgpu_cs_query_fence_status(struct amdgpu_cs_query_fence *fence,
439 pthread_mutex_unlock(&context->sequence_mutex); 441 pthread_mutex_unlock(&context->sequence_mutex);
440 442
441 r = amdgpu_ioctl_wait_cs(context, ip_type, ip_instance, ring, 443 r = amdgpu_ioctl_wait_cs(context, ip_type, ip_instance, ring,
442 fence->fence, fence->timeout_ns, 444 fence->fence, timeout_ns,
443 fence->flags, &busy); 445 flags, &busy);
444 if (!r && !busy) { 446 if (!r && !busy) {
445 *expired = true; 447 *expired = true;
446 pthread_mutex_lock(&context->sequence_mutex); 448 pthread_mutex_lock(&context->sequence_mutex);