summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/amdgpu/amd_command_submission.c8
-rw-r--r--lib/amdgpu/amd_ip_blocks.c9
-rw-r--r--lib/amdgpu/amd_ip_blocks.h2
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 */