Commit 214eb7e8 authored by Jinzhou Su's avatar Jinzhou Su Committed by Alex Deucher
Browse files

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: default avatarJinzhou Su <jinzhou.su@amd.com>
Reviewed-by: default avatarTao Zhou <tao.zhou1@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 28d4de7e
Loading
Loading
Loading
Loading
+31 −1
Original line number Diff line number Diff line
@@ -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,