diff --git a/include/amd_smi/impl/amd_smi_utils.h b/include/amd_smi/impl/amd_smi_utils.h index 76729cd82a..f2aeb29d67 100644 --- a/include/amd_smi/impl/amd_smi_utils.h +++ b/include/amd_smi/impl/amd_smi_utils.h @@ -42,5 +42,6 @@ amdsmi_status_t smi_amdgpu_get_bad_page_info(amd::smi::AMDSmiGPUDevice* device, amdsmi_status_t smi_amdgpu_get_ecc_error_count(amd::smi::AMDSmiGPUDevice* device, amdsmi_error_count_t *err_cnt); amdsmi_status_t smi_amdgpu_get_driver_version(amd::smi::AMDSmiGPUDevice* device, int *length, char *version); amdsmi_status_t smi_amdgpu_get_pcie_speed_from_pcie_type(uint16_t pcie_type, uint32_t *pcie_speed); +amdsmi_status_t smi_amdgpu_get_market_name_from_dev_id(uint32_t device_id, char *market_name); #endif // diff --git a/src/amd_smi/amd_smi.cc b/src/amd_smi/amd_smi.cc index d307ef130f..a004de94ec 100644 --- a/src/amd_smi/amd_smi.cc +++ b/src/amd_smi/amd_smi.cc @@ -568,9 +568,6 @@ amdsmi_get_asic_info(amdsmi_device_handle device_handle, amdsmi_asic_info_t *inf } struct drm_amdgpu_info_device dev_info = {}; - struct drm_amdgpu_info_vbios vbios = {}; - char* name; - char *tmp; uint16_t vendor_id = 0; uint16_t subvendor_id = 0; @@ -583,8 +580,6 @@ amdsmi_get_asic_info(amdsmi_device_handle device_handle, amdsmi_asic_info_t *inf if (gpu_device->check_if_drm_is_supported()){ status = gpu_device->amdgpu_query_info(AMDGPU_INFO_DEV_INFO, sizeof(struct drm_amdgpu_info_device), &dev_info); if (status != AMDSMI_STATUS_SUCCESS) return status; - status = gpu_device->amdgpu_query_vbios(&vbios); - if (status != AMDSMI_STATUS_SUCCESS) return status; SMIGPUDEVICE_MUTEX(gpu_device->get_mutex()) @@ -595,9 +590,8 @@ amdsmi_get_asic_info(amdsmi_device_handle device_handle, amdsmi_asic_info_t *inf fclose(fp); } - name = strtok_r((char *) vbios.name, " ", &tmp); - if (name) - strncpy(info->market_name, name, AMDSMI_MAX_STRING_LENGTH); + status = smi_amdgpu_get_market_name_from_dev_id(dev_info.device_id, info->market_name); + if (status != AMDSMI_STATUS_SUCCESS) return status; info->device_id = dev_info.device_id; info->family = dev_info.family; diff --git a/src/amd_smi/amd_smi_utils.cc b/src/amd_smi/amd_smi_utils.cc index e319b3fe57..6b94be27bc 100644 --- a/src/amd_smi/amd_smi_utils.cc +++ b/src/amd_smi/amd_smi_utils.cc @@ -480,3 +480,27 @@ amdsmi_status_t smi_amdgpu_get_pcie_speed_from_pcie_type(uint16_t pcie_type, uin } return AMDSMI_STATUS_SUCCESS; } + +amdsmi_status_t smi_amdgpu_get_market_name_from_dev_id(uint32_t device_id, char *market_name) +{ + switch (device_id) { + case 0x73c8: + case 0x73c4: + case 0x73c5: + strcpy(market_name, "NAVI32"); + break; + case 0x73a1: + case 0x73ae: + strcpy(market_name, "NAVI21"); + break; + case 0x7408: + case 0x740C: + case 0x740F: + case 0x7410: + strcpy(market_name, "Instinct MI200"); + break; + default: + return AMDSMI_STATUS_API_FAILED; + } + return AMDSMI_STATUS_SUCCESS; +}