From b4dde2ee0279a85ffea8b65613d2da46ae2db8a6 Mon Sep 17 00:00:00 2001 From: Peyton Lee Date: Wed, 6 May 2026 06:43:16 +0000 Subject: [PATCH] amd: validate and expose VPE 2.0.0 Define VPE 2.0.0 version identifiers in amd_family.h. In ac_gpu_info.c, assign vpe_version only when the detected version is supported. This ensures userspace only sees a valid VPE version. Signed-off-by: Peyton Lee --- src/amd/common/ac_gpu_info.c | 23 ++++++++++++++++++----- src/amd/common/amd_family.h | 7 +++---- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c index 5c515f85e3f..ec8f4d3eae8 100644 --- a/src/amd/common/ac_gpu_info.c +++ b/src/amd/common/ac_gpu_info.c @@ -861,11 +861,24 @@ ac_identify_chip(struct radeon_info *info, const struct drm_amdgpu_info_device * break; } - if (info->ip[AMD_IP_VPE].num_queues) - info->vpe_ip_version = (enum vpe_version)VPE_VERSION_VALUE( - info->ip[AMD_IP_VPE].ver_major, - info->ip[AMD_IP_VPE].ver_minor, - info->ip[AMD_IP_VPE].ver_rev); + switch(VPE_VERSION_VALUE(info->ip[AMD_IP_VPE].ver_major, + info->ip[AMD_IP_VPE].ver_minor, + info->ip[AMD_IP_VPE].ver_rev)) { + case VPE_VERSION_VALUE(6, 1, 0): + case VPE_VERSION_VALUE(6, 1, 3): + info->vpe_ip_version = VPE_1_0; + break; + case VPE_VERSION_VALUE(6, 1, 1): + case VPE_VERSION_VALUE(6, 1, 2): + info->vpe_ip_version = VPE_1_1; + break; + case VPE_VERSION_VALUE(2, 0, 0): + info->vpe_ip_version = VPE_2_0; + break; + default: + info->vpe_ip_version = VPE_UNKNOWN; + break; + } /* Convert the SDMA version in the current GPU to an enum. */ info->sdma_ip_version = diff --git a/src/amd/common/amd_family.h b/src/amd/common/amd_family.h index f8f7ae9fc76..0f5e773b758 100644 --- a/src/amd/common/amd_family.h +++ b/src/amd/common/amd_family.h @@ -230,10 +230,9 @@ enum vcn_version{ enum vpe_version { VPE_UNKNOWN = 0, - VPE_6_1_0 = VPE_VERSION_VALUE(6, 1, 0), - VPE_6_1_1 = VPE_VERSION_VALUE(6, 1, 1), - VPE_6_1_2 = VPE_VERSION_VALUE(6, 1, 2), - VPE_6_1_3 = VPE_VERSION_VALUE(6, 1, 3), + VPE_1_0, + VPE_1_1, + VPE_2_0, }; #define SDMA_VERSION_VALUE(major, minor) (((major) << 8) | (minor))