File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
13951396static 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 ,
Original file line number Diff line number Diff 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
246249struct amdgpu_cu_info {
Original file line number Diff line number Diff 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+
283313typedef struct harvest_info_header {
284314 uint32_t signature ; /* Table Signature */
285315 uint32_t version ; /* Table Version */
You can’t perform that action at this time.
0 commit comments