diff --git a/projects/amdsmi/py-interface/amdsmi_interface.py b/projects/amdsmi/py-interface/amdsmi_interface.py index 98844c700f..74a190da06 100644 --- a/projects/amdsmi/py-interface/amdsmi_interface.py +++ b/projects/amdsmi/py-interface/amdsmi_interface.py @@ -1291,6 +1291,8 @@ def amdsmi_set_cpu_pcie_link_rate( processor_handle, rate_ctrl, ctypes.byref(prev_mode)) ) + return f"{prev_mode.value}" + def amdsmi_set_cpu_df_pstate_range( processor_handle: amdsmi_wrapper.amdsmi_processor_handle, max_pstate: int, min_pstate: int diff --git a/projects/amdsmi/src/amd_smi/amd_smi.cc b/projects/amdsmi/src/amd_smi/amd_smi.cc index e576f67226..7032b1a59a 100644 --- a/projects/amdsmi/src/amd_smi/amd_smi.cc +++ b/projects/amdsmi/src/amd_smi/amd_smi.cc @@ -2915,6 +2915,7 @@ amdsmi_status_t amdsmi_set_cpu_pcie_link_rate(amdsmi_processor_handle processor_ { amdsmi_status_t status; uint8_t sock_ind; + uint8_t p_mode; AMDSMI_CHECK_INIT(); @@ -2928,10 +2929,12 @@ amdsmi_status_t amdsmi_set_cpu_pcie_link_rate(amdsmi_processor_handle processor_ sock_ind = (uint8_t)std::stoi(proc_id, NULL, 0); status = static_cast(esmi_pcie_link_rate_set(sock_ind, - rate_ctrl, prev_mode)); + rate_ctrl, &p_mode)); if (status != AMDSMI_STATUS_SUCCESS) return amdsmi_errno_to_esmi_status(status); + *prev_mode = p_mode; + return AMDSMI_STATUS_SUCCESS; }