[PATCH v3 14/19] lib/amdgpu: use right API to get the correct size

Sunil Khatri sunil.khatri at amd.com
Fri Mar 28 08:24:11 UTC 2025


Use amdgpu_query_uq_fw_area_info api to get the
sizes and alignment for shadow and csa.

Signed-off-by: Sunil Khatri <sunil.khatri at amd.com>
---
 lib/amdgpu/amd_ip_blocks.h  |  2 +-
 lib/amdgpu/amd_user_queue.c | 21 ++++++++++-----------
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/lib/amdgpu/amd_ip_blocks.h b/lib/amdgpu/amd_ip_blocks.h
index e085f1618..231098eb8 100644
--- a/lib/amdgpu/amd_ip_blocks.h
+++ b/lib/amdgpu/amd_ip_blocks.h
@@ -175,7 +175,7 @@ struct amdgpu_ring_context {
 	uint64_t point;
 	bool user_queue;
 
-	struct drm_amdgpu_info_device dev_info;
+	struct drm_amdgpu_info_uq_fw_areas info;
 };
 
 
diff --git a/lib/amdgpu/amd_user_queue.c b/lib/amdgpu/amd_user_queue.c
index 1bfc86949..d1763f5d6 100644
--- a/lib/amdgpu/amd_user_queue.c
+++ b/lib/amdgpu/amd_user_queue.c
@@ -189,13 +189,13 @@ void amdgpu_user_queue_destroy(amdgpu_device_handle device_handle, struct amdgpu
 	case AMD_IP_GFX:
 		amdgpu_bo_unmap_and_free_uq(device_handle, ctxt->csa.handle,
 					    ctxt->csa.va_handle,
-					    ctxt->csa.mc_addr, ctxt->dev_info.csa_size,
+					    ctxt->csa.mc_addr, ctxt->info.gfx.csa_size,
 					    ctxt->timeline_syncobj_handle, ++ctxt->point,
 					    0, 0);
 
 		amdgpu_bo_unmap_and_free_uq(device_handle, ctxt->shadow.handle,
 					    ctxt->shadow.va_handle,
-					    ctxt->shadow.mc_addr, ctxt->dev_info.shadow_size,
+					    ctxt->shadow.mc_addr, ctxt->info.gfx.shadow_size,
 					    ctxt->timeline_syncobj_handle, ++ctxt->point,
 					    0, 0);
 
@@ -219,7 +219,7 @@ void amdgpu_user_queue_destroy(amdgpu_device_handle device_handle, struct amdgpu
 	case AMD_IP_DMA:
 		amdgpu_bo_unmap_and_free_uq(device_handle, ctxt->csa.handle,
 					    ctxt->csa.va_handle,
-					    ctxt->csa.mc_addr, ctxt->dev_info.csa_size,
+					    ctxt->csa.mc_addr, ctxt->info.gfx.csa_size,
 					    ctxt->timeline_syncobj_handle, ++ctxt->point,
 					    0, 0);
 
@@ -268,8 +268,7 @@ void amdgpu_user_queue_create(amdgpu_device_handle device_handle, struct amdgpu_
 		return;
 	}
 
-	r = amdgpu_query_info(device_handle, AMDGPU_INFO_DEV_INFO,
-			      sizeof(ctxt->dev_info), &ctxt->dev_info);
+	r = amdgpu_query_uq_fw_area_info(device_handle, AMD_IP_GFX, 0, &ctxt->info);
 	igt_assert_eq(r, 0);
 
 	r = amdgpu_cs_create_syncobj2(device_handle, 0, &ctxt->timeline_syncobj_handle);
@@ -307,8 +306,8 @@ void amdgpu_user_queue_create(amdgpu_device_handle device_handle, struct amdgpu_
 
 	switch (type) {
 	case AMD_IP_GFX:
-		r = amdgpu_bo_alloc_and_map_uq(device_handle, ctxt->dev_info.shadow_size,
-					       ctxt->dev_info.shadow_alignment,
+		r = amdgpu_bo_alloc_and_map_uq(device_handle, ctxt->info.gfx.shadow_size,
+					       ctxt->info.gfx.shadow_alignment,
 					       AMDGPU_GEM_DOMAIN_GTT,
 					       gtt_flags,
 					       AMDGPU_VM_MTYPE_UC,
@@ -317,8 +316,8 @@ void amdgpu_user_queue_create(amdgpu_device_handle device_handle, struct amdgpu_
 					       ctxt->timeline_syncobj_handle, ++ctxt->point);
 		igt_assert_eq(r, 0);
 
-		r = amdgpu_bo_alloc_and_map_uq(device_handle, ctxt->dev_info.csa_size,
-					       ctxt->dev_info.csa_alignment,
+		r = amdgpu_bo_alloc_and_map_uq(device_handle, ctxt->info.gfx.csa_size,
+					       ctxt->info.gfx.csa_alignment,
 					       AMDGPU_GEM_DOMAIN_GTT,
 					       gtt_flags,
 					       AMDGPU_VM_MTYPE_UC,
@@ -347,8 +346,8 @@ void amdgpu_user_queue_create(amdgpu_device_handle device_handle, struct amdgpu_
 		break;
 
 	case AMD_IP_DMA:
-		r = amdgpu_bo_alloc_and_map_uq(device_handle, ctxt->dev_info.csa_size,
-					       ctxt->dev_info.csa_alignment,
+		r = amdgpu_bo_alloc_and_map_uq(device_handle, ctxt->info.gfx.csa_size,
+					       ctxt->info.gfx.csa_alignment,
 					       AMDGPU_GEM_DOMAIN_GTT,
 					       gtt_flags,
 					       AMDGPU_VM_MTYPE_UC,
-- 
2.43.0



More information about the igt-dev mailing list