drm/amdgpu: Add uniras version in sysfs

Display uniras version in sysfs version interface
when uniras enable.

v2: display ras version detail info

Signed-off-by: Jinzhou Su <jinzhou.su@amd.com>
Reviewed-by: Tao Zhou <tao.zhou1@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Jinzhou Su
2025-10-21 09:31:11 +08:00
committed by Alex Deucher
parent 28d4de7ebf
commit 214eb7e83d

View File

@@ -1950,12 +1950,42 @@ static ssize_t amdgpu_ras_sysfs_features_read(struct device *dev,
return sysfs_emit(buf, "feature mask: 0x%x\n", con->features);
}
static bool amdgpu_ras_get_version_info(struct amdgpu_device *adev, u32 *major,
u32 *minor, u32 *rev)
{
int i;
if (!adev || !major || !minor || !rev || !amdgpu_uniras_enabled(adev))
return false;
for (i = 0; i < adev->num_ip_blocks; i++) {
if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_RAS) {
*major = adev->ip_blocks[i].version->major;
*minor = adev->ip_blocks[i].version->minor;
*rev = adev->ip_blocks[i].version->rev;
return true;
}
}
return false;
}
static ssize_t amdgpu_ras_sysfs_version_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct amdgpu_ras *con =
container_of(attr, struct amdgpu_ras, version_attr);
return sysfs_emit(buf, "table version: 0x%x\n", con->eeprom_control.tbl_hdr.version);
u32 major, minor, rev;
ssize_t size = 0;
size += sysfs_emit_at(buf, size, "table version: 0x%x\n",
con->eeprom_control.tbl_hdr.version);
if (amdgpu_ras_get_version_info(con->adev, &major, &minor, &rev))
size += sysfs_emit_at(buf, size, "ras version: %u.%u.%u\n",
major, minor, rev);
return size;
}
static ssize_t amdgpu_ras_sysfs_schema_show(struct device *dev,