Add rsmi_dev_serial_number_get()

Also correct whitespace issues

Change-Id: I7ffe23672304c31ed08d7148b04a19a7d4c3d7ef
This commit is contained in:
Chris Freehill
2019-07-22 07:09:53 -05:00
parent dea44dee54
commit cf13d6f4d8
5 changed files with 67 additions and 1 deletions
+28 -1
View File
@@ -1428,7 +1428,6 @@ static rsmi_status_t get_dev_name_from_id(uint32_t dv_ind, char *name,
static rsmi_status_t
get_dev_drm_render_minor(uint32_t dv_ind, uint32_t *minor) {
GET_DEV_FROM_INDX
*minor = dev->drm_render_minor();
@@ -2244,6 +2243,34 @@ rsmi_version_str_get(rsmi_sw_component_t component, char *ver_str,
CATCH
}
rsmi_status_t rsmi_dev_serial_number_get(uint32_t dv_ind,
char *serial_num, uint32_t len) {
if (serial_num == nullptr || len == 0) {
return RSMI_STATUS_INVALID_ARGS;
}
TRY
std::string val_str;
rsmi_status_t ret = get_dev_value_str(amd::smi::kDevSerialNumber,
dv_ind, &val_str);
if (ret != RSMI_STATUS_SUCCESS) {
return ret;
}
uint32_t ln = val_str.copy(serial_num, len);
serial_num[std::min(len - 1, ln)] = '\0';
if (len < (val_str.size() + 1)) {
return RSMI_STATUS_INSUFFICIENT_SIZE;
}
return RSMI_STATUS_SUCCESS;
CATCH
}
rsmi_status_t
rsmi_dev_pci_replay_counter_get(uint32_t dv_ind, uint64_t *counter) {
TRY
+3
View File
@@ -102,6 +102,7 @@ static const char *kDevUniqueIdFName = "unique_id";
static const char *kDevDFCountersAvailableFName = "df_cntr_avail";
static const char *kDevMemBusyPercentFName = "mem_busy_percent";
static const char *kDevXGMIErrorFName = "xgmi_error";
static const char *kDevSerialNumberFName = "serial_number";
// Strings that are found within sysfs files
static const char *kDevPerfLevelAutoStr = "auto";
@@ -192,6 +193,7 @@ static const std::map<DevInfoTypes, const char *> kDevAttribNameMap = {
{kDevFwVersionUvd, kDevFwVersionUvdFName},
{kDevFwVersionVce, kDevFwVersionVceFName},
{kDevFwVersionVcn, kDevFwVersionVcnFName},
{kDevSerialNumber, kDevSerialNumberFName},
};
static const std::map<rsmi_dev_perf_level, const char *> kDevPerfLvlMap = {
@@ -505,6 +507,7 @@ int Device::readDevInfo(DevInfoTypes type, std::string *val) {
case kDevVendorID:
case kDevVBiosVer:
case kDevPCIEThruPut:
case kDevSerialNumber:
return readDevInfoStr(type, val);
break;