diff options
| -rw-r--r-- | lib/amdgpu/amd_command_submission.c | 8 | ||||
| -rw-r--r-- | lib/amdgpu/amd_ip_blocks.c | 9 | ||||
| -rw-r--r-- | lib/amdgpu/amd_ip_blocks.h | 2 |
3 files changed, 11 insertions, 8 deletions
diff --git a/lib/amdgpu/amd_command_submission.c b/lib/amdgpu/amd_command_submission.c index 64568ded1..4b59cdab0 100644 --- a/lib/amdgpu/amd_command_submission.c +++ b/lib/amdgpu/amd_command_submission.c @@ -69,9 +69,11 @@ int amdgpu_test_exec_cs_helper(amdgpu_device_handle device, unsigned int ip_type ring_ptr = ib_result_cpu; memcpy(ring_ptr, ring_context->pm4, ring_context->pm4_dw * sizeof(*ring_context->pm4)); - if (user_queue) - ip_block->funcs->userq_submit(device, ring_context, ip_type, ib_result_mc_address); - else { + if (user_queue) { + r = ip_block->funcs->userq_submit(device, ring_context, ip_type, ib_result_mc_address); + if (!expect_failure) + igt_assert_eq(r, 0); + } else { ring_context->ib_info.ib_mc_address = ib_result_mc_address; ring_context->ib_info.size = ring_context->pm4_dw; if (ring_context->secure) diff --git a/lib/amdgpu/amd_ip_blocks.c b/lib/amdgpu/amd_ip_blocks.c index 71b1c5c2b..51503f59d 100644 --- a/lib/amdgpu/amd_ip_blocks.c +++ b/lib/amdgpu/amd_ip_blocks.c @@ -582,7 +582,7 @@ int amdgpu_timeline_syncobj_wait(amdgpu_device_handle device_handle, return r; } -static void +static int user_queue_submit(amdgpu_device_handle device, struct amdgpu_ring_context *ring_context, unsigned int ip_type, uint64_t mc_address) { @@ -653,8 +653,8 @@ user_queue_submit(amdgpu_device_handle device, struct amdgpu_ring_context *ring_ igt_assert_eq(r, 0); r = amdgpu_cs_syncobj_wait(device, &ring_context->timeline_syncobj_handle, 1, timeout, - DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL, NULL); - igt_assert_eq(r, 0); + DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL, NULL); + return r; } static void @@ -932,10 +932,11 @@ amdgpu_timeline_syncobj_wait(amdgpu_device_handle device_handle, return 0; } -static void +static int user_queue_submit(amdgpu_device_handle device, struct amdgpu_ring_context *ring_context, unsigned int ip_type, uint64_t mc_address) { + return 0; } static void diff --git a/lib/amdgpu/amd_ip_blocks.h b/lib/amdgpu/amd_ip_blocks.h index 66c2789d5..67891ded6 100644 --- a/lib/amdgpu/amd_ip_blocks.h +++ b/lib/amdgpu/amd_ip_blocks.h @@ -230,7 +230,7 @@ struct amdgpu_ip_funcs { /* userq functions */ void (*userq_create)(amdgpu_device_handle device_handle, struct amdgpu_ring_context *ctxt, unsigned int type); - void (*userq_submit)(amdgpu_device_handle device, struct amdgpu_ring_context *ring_context, unsigned int ip_type, uint64_t mc_address); + int (*userq_submit)(amdgpu_device_handle device, struct amdgpu_ring_context *ring_context, unsigned int ip_type, uint64_t mc_address); void (*userq_destroy)(amdgpu_device_handle device_handle, struct amdgpu_ring_context *ctxt, unsigned int type); /* program minimal compute pipeline for a raw PM4 launch */ |
