]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: Enable xgmi extended peer links for sriov guest
authorWill Aitken <wiaitken@amd.com>
Tue, 7 Oct 2025 14:49:15 +0000 (14:49 +0000)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Nov 2025 16:27:42 +0000 (11:27 -0500)
The amd-smi tool relies on extended peer link information to report xgmi
link metrics. The necessary xgmi ta command, GET_EXTEND_PEER_LINKS, has
been enabled in the host driver and this change is necessary for the
guest to make use of it. To handle the case where the host driver does
not have the latest xgmi ta, the guest driver checks for guest support
through a pf2vf feature flag before invoking psp.

Signed-off-by: Will Aitken <wiaitken@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c

index 76ab8462d9ed2a80161516678cb3a3e03e8343df..0b10497d487c3170b5f01608526d1c361230369e 100644 (file)
@@ -1649,8 +1649,8 @@ int psp_xgmi_get_topology_info(struct psp_context *psp,
                        amdgpu_ip_version(psp->adev, MP0_HWIP, 0) ==
                                IP_VERSION(13, 0, 14) ||
                        amdgpu_sriov_vf(psp->adev);
-               bool ta_port_num_support = amdgpu_sriov_vf(psp->adev) ? 0 :
-                               psp->xgmi_context.xgmi_ta_caps & EXTEND_PEER_LINK_INFO_CMD_FLAG;
+               bool ta_port_num_support = psp->xgmi_context.xgmi_ta_caps & EXTEND_PEER_LINK_INFO_CMD_FLAG ||
+                       amdgpu_sriov_xgmi_ta_ext_peer_link_en(psp->adev);
 
                /* popluate the shared output buffer rather than the cmd input buffer
                 * with node_ids as the input for GET_PEER_LINKS command execution.