Skip to content

Commit

Permalink
[SWDEV-481702] Update marketing name source
Browse files Browse the repository at this point in the history
Signed-off-by: Maisam Arif <[email protected]>
Change-Id: I9d4df65acfab11bf00c892c8d9a6d5d21648ec74
  • Loading branch information
Maisam Arif authored and arjun-raj-kuppala committed Jan 6, 2025
1 parent 2660d48 commit cd172c9
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 41 deletions.
2 changes: 1 addition & 1 deletion include/amd_smi/impl/amd_smi_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ 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);
amdsmi_status_t smi_amdgpu_get_market_name_from_dev_id(amd::smi::AMDSmiGPUDevice* device, char *market_name);
amdsmi_status_t smi_amdgpu_is_gpu_power_management_enabled(amd::smi::AMDSmiGPUDevice* device, bool *enabled);
std::string smi_split_string(std::string str, char delim);
std::string smi_amdgpu_get_status_string(amdsmi_status_t ret, bool fullStatus);
Expand Down
2 changes: 1 addition & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ configure_file("${AMD_SMI_TARGET}Config.in" "${PROJECT_SOURCE_DIR}/include/amd_s
add_executable(amd_smi_ex "../example/amd_smi_drm_example.cc")
target_link_libraries(amd_smi_ex ${AMD_SMI_TARGET})
add_library(${AMD_SMI_TARGET} ${SRC_LIST} ${INC_LIST})
target_link_libraries(${AMD_SMI_TARGET} pthread rt dl)
target_link_libraries(${AMD_SMI_TARGET} pthread rt dl ${DRM_AMDGPU_LIB} ${AMDGPU_DRM_LIBRARIES})
target_include_directories(${AMD_SMI_TARGET} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/rocm_smi/include
${PROJECT_SOURCE_DIR}/common/shared_mutex)

Expand Down
2 changes: 1 addition & 1 deletion src/amd_smi/amd_smi.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1008,7 +1008,7 @@ amdsmi_get_gpu_asic_info(amdsmi_processor_handle processor_handle, amdsmi_asic_i
fclose(fp);
}

status = smi_amdgpu_get_market_name_from_dev_id(dev_info.device_id, info->market_name);
status = smi_amdgpu_get_market_name_from_dev_id(gpu_device, info->market_name);
if (status != AMDSMI_STATUS_SUCCESS) {
rsmi_wrapper(rsmi_dev_brand_get, processor_handle,
info->market_name, AMDSMI_256_LENGTH);
Expand Down
71 changes: 33 additions & 38 deletions src/amd_smi/amd_smi_utils.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

#include <amdgpu.h>
#include <errno.h>
#include <fcntl.h>
#include <stdint.h>
Expand Down Expand Up @@ -554,47 +555,41 @@ 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:
case 0x7460:
case 0x7461:
strcpy(market_name, "NAVI32");
break;
case 0x73a1:
case 0x73ae:
case 0x73bf:
strcpy(market_name, "NAVI21");
break;
case 0x74b4:
case 0x74a0:
strcpy(market_name, "MI300A");
break;
case 0x74a1:
case 0x74b5:
strcpy(market_name, "AMD Instinct MI300X");
break;
case 0x74a2:
case 0x74b6:
strcpy(market_name, "MI308X");
break;
case 0x74a5:
strcpy(market_name, "AMD Instinct MI325X");
break;
case 0x74a9:
case 0x74bd:
strcpy(market_name, "AMD Instinct MI300X HF");
break;
default:
return AMDSMI_STATUS_API_FAILED;
amdsmi_status_t smi_amdgpu_get_market_name_from_dev_id(amd::smi::AMDSmiGPUDevice* device, char *market_name) {
if (market_name == nullptr || device == nullptr) {
return AMDSMI_STATUS_ARG_PTR_NULL;
}
return AMDSMI_STATUS_SUCCESS;

if (!device->check_if_drm_is_supported()) {
return AMDSMI_STATUS_NOT_SUPPORTED;
}

uint32_t major_version, minor_version;
amdgpu_device_handle device_handle = nullptr;

uint32_t gpu_fd = device->get_gpu_fd();

char drm_path[32];

int ret = amdgpu_device_initialize(gpu_fd, &major_version, &minor_version, &device_handle);
if (ret != 0) {
return AMDSMI_STATUS_DRM_ERROR;
}

// Get the marketing name using libdrm's API
const char *name = amdgpu_get_marketing_name(device_handle);
if (name != nullptr) {
std::strncpy(market_name, name, AMDSMI_256_LENGTH - 1);
market_name[AMDSMI_256_LENGTH - 1] = '\0';
amdgpu_device_deinitialize(device_handle);
return AMDSMI_STATUS_SUCCESS;
}

amdgpu_device_deinitialize(device_handle);
return AMDSMI_STATUS_DRM_ERROR;
}

amdsmi_status_t smi_amdgpu_is_gpu_power_management_enabled(amd::smi::AMDSmiGPUDevice *device,
amdsmi_status_t smi_amdgpu_is_gpu_power_management_enabled(amd::smi::AMDSmiGPUDevice* device,
bool *enabled) {
if (!device->check_if_drm_is_supported()) {
return AMDSMI_STATUS_NOT_SUPPORTED;
Expand Down

0 comments on commit cd172c9

Please sign in to comment.