[PATCH 1/2] lib/amdgpu: allow usage convenient chip info

vitaly.prosyak at amd.com vitaly.prosyak at amd.com
Sat Jun 22 22:52:15 UTC 2024


From: Vitaly Prosyak <vitaly.prosyak at amd.com>

Make the struct chip_info accessible for use within the test.
The structure will be accessed through a constant pointer,
ensuring that no modifications to its fields are allowed.

Cc: Alex Deucher <alexander.deucher at amd.com>
Cc: Christian Koenig <christian.koenig at amd.com>
Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
Cc: Jesse Zhang <Jesse.Zhang at amd.com>
Signed-off-by: Vitaly Prosyak <vitaly.prosyak at amd.com>
---
 lib/amdgpu/amd_ip_blocks.c | 10 ++--------
 lib/amdgpu/amd_ip_blocks.h | 10 +++++++++-
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/lib/amdgpu/amd_ip_blocks.c b/lib/amdgpu/amd_ip_blocks.c
index 2ee94105c..19e2838f5 100644
--- a/lib/amdgpu/amd_ip_blocks.c
+++ b/lib/amdgpu/amd_ip_blocks.c
@@ -16,7 +16,6 @@
 
 #include <amdgpu_drm.h>
 #include "amdgpu_asic_addr.h"
-#include "amd_family.h"
 #include "amd_gfx_v8_0.h"
 #include "ioctl_wrappers.h"
 
@@ -412,15 +411,9 @@ struct amdgpu_ip_block_version sdma_v3_x_ip_block = {
 	.funcs = &sdma_v3_x_ip_funcs
 };
 
-struct chip_info {
-	const char *name;
-	enum radeon_family family;
-	enum chip_class chip_class;
-	  amdgpu_device_handle dev;
-};
-
 /* we may improve later */
 struct amdgpu_ip_blocks_device amdgpu_ips;
+const struct chip_info  *g_pChip = NULL;
 struct chip_info g_chip;
 
 static int
@@ -617,6 +610,7 @@ int setup_amdgpu_ip_blocks(uint32_t major, uint32_t minor, struct amdgpu_gpu_inf
 		{},
 	};
 	struct chip_info *info = &g_chip;
+	g_pChip = &g_chip;
 
 	switch (amdinfo->family_id) {
 	case AMDGPU_FAMILY_SI:
diff --git a/lib/amdgpu/amd_ip_blocks.h b/lib/amdgpu/amd_ip_blocks.h
index 97a9ad489..d4364d604 100644
--- a/lib/amdgpu/amd_ip_blocks.h
+++ b/lib/amdgpu/amd_ip_blocks.h
@@ -8,6 +8,7 @@
 #define AMD_IP_BLOCKS_H
 
 #include "amd_registers.h"
+#include "amd_family.h"
 
 #define MAX_CARDS_SUPPORTED 4
 
@@ -110,8 +111,15 @@ struct amdgpu_ip_blocks_device {
 	int			num_ip_blocks;
 };
 
-extern  struct amdgpu_ip_blocks_device amdgpu_ips;
+struct chip_info {
+	const char *name;
+	enum radeon_family family;
+	enum chip_class chip_class;
+	amdgpu_device_handle dev;
+};
 
+extern  struct amdgpu_ip_blocks_device amdgpu_ips;
+extern const struct chip_info  *g_pChip;
 int
 setup_amdgpu_ip_blocks(uint32_t major, uint32_t minor, struct amdgpu_gpu_info *amdinfo,
 		       amdgpu_device_handle device);
-- 
2.25.1



More information about the igt-dev mailing list