Skip to content

Commit 46b55e2

Browse files
lema1-devalexdeucher
authored andcommitted
drm/amdgpu: update gc_info v2_1 from discovery
Several new fields are exposed in gc_info v2_1 Signed-off-by: Le Ma <le.ma@amd.com> Reviewed-by: Shiwu Zhang <shiwu.zhang@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Reviewed-by: Lijo Lazar <lijo.lazar@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent d4f6425 commit 46b55e2

3 files changed

Lines changed: 43 additions & 0 deletions

File tree

drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1390,6 +1390,7 @@ union gc_info {
13901390
struct gc_info_v1_1 v1_1;
13911391
struct gc_info_v1_2 v1_2;
13921392
struct gc_info_v2_0 v2;
1393+
struct gc_info_v2_1 v2_1;
13931394
};
13941395

13951396
static int amdgpu_discovery_get_gfx_info(struct amdgpu_device *adev)
@@ -1465,6 +1466,15 @@ static int amdgpu_discovery_get_gfx_info(struct amdgpu_device *adev)
14651466
adev->gfx.config.num_sc_per_sh = le32_to_cpu(gc_info->v2.gc_num_sc_per_se) /
14661467
le32_to_cpu(gc_info->v2.gc_num_sh_per_se);
14671468
adev->gfx.config.num_packer_per_sc = le32_to_cpu(gc_info->v2.gc_num_packer_per_sc);
1469+
if (gc_info->v2.header.version_minor == 1) {
1470+
adev->gfx.config.gc_num_tcp_per_sa = le32_to_cpu(gc_info->v2_1.gc_num_tcp_per_sh);
1471+
adev->gfx.config.gc_tcp_size_per_cu = le32_to_cpu(gc_info->v2_1.gc_tcp_size_per_cu);
1472+
adev->gfx.config.gc_num_sdp_interface = le32_to_cpu(gc_info->v2_1.gc_num_sdp_interface); /* per XCD */
1473+
adev->gfx.config.gc_num_cu_per_sqc = le32_to_cpu(gc_info->v2_1.gc_num_cu_per_sqc);
1474+
adev->gfx.config.gc_l1_instruction_cache_size_per_sqc = le32_to_cpu(gc_info->v2_1.gc_instruction_cache_size_per_sqc);
1475+
adev->gfx.config.gc_l1_data_cache_size_per_sqc = le32_to_cpu(gc_info->v2_1.gc_scalar_data_cache_size_per_sqc);
1476+
adev->gfx.config.gc_tcc_size = le32_to_cpu(gc_info->v2_1.gc_tcc_size); /* per XCD */
1477+
}
14681478
break;
14691479
default:
14701480
dev_err(adev->dev,

drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,9 @@ struct amdgpu_gfx_config {
241241
uint32_t gc_gl1c_per_sa;
242242
uint32_t gc_gl1c_size_per_instance;
243243
uint32_t gc_gl2c_per_gpu;
244+
uint32_t gc_tcp_size_per_cu;
245+
uint32_t gc_num_cu_per_sqc;
246+
uint32_t gc_tcc_size;
244247
};
245248

246249
struct amdgpu_cu_info {

drivers/gpu/drm/amd/include/discovery.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,36 @@ struct gc_info_v2_0 {
280280
uint32_t gc_num_packer_per_sc;
281281
};
282282

283+
struct gc_info_v2_1 {
284+
struct gpu_info_header header;
285+
286+
uint32_t gc_num_se;
287+
uint32_t gc_num_cu_per_sh;
288+
uint32_t gc_num_sh_per_se;
289+
uint32_t gc_num_rb_per_se;
290+
uint32_t gc_num_tccs;
291+
uint32_t gc_num_gprs;
292+
uint32_t gc_num_max_gs_thds;
293+
uint32_t gc_gs_table_depth;
294+
uint32_t gc_gsprim_buff_depth;
295+
uint32_t gc_parameter_cache_depth;
296+
uint32_t gc_double_offchip_lds_buffer;
297+
uint32_t gc_wave_size;
298+
uint32_t gc_max_waves_per_simd;
299+
uint32_t gc_max_scratch_slots_per_cu;
300+
uint32_t gc_lds_size;
301+
uint32_t gc_num_sc_per_se;
302+
uint32_t gc_num_packer_per_sc;
303+
/* new for v2_1 */
304+
uint32_t gc_num_tcp_per_sh;
305+
uint32_t gc_tcp_size_per_cu;
306+
uint32_t gc_num_sdp_interface;
307+
uint32_t gc_num_cu_per_sqc;
308+
uint32_t gc_instruction_cache_size_per_sqc;
309+
uint32_t gc_scalar_data_cache_size_per_sqc;
310+
uint32_t gc_tcc_size;
311+
};
312+
283313
typedef struct harvest_info_header {
284314
uint32_t signature; /* Table Signature */
285315
uint32_t version; /* Table Version */

0 commit comments

Comments
 (0)