Commit a5f67c93 authored by Zhigang Luo's avatar Zhigang Luo Committed by Alex Deucher
Browse files

drm/amdgpu: recover XGMI topology for SRIOV VF after reset



For SRIOV VF, the XGMI topology was not recovered after reset. This
change added code to SRIOV VF reset function to update XGMI topology
for SRIOV VF after reset.

Signed-off-by: default avatarZhigang Luo <zhigang.luo@amd.com>
Reviewed-by: default avatarShaoyun Liu <shaoyun.liu@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent dd26e018
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -4285,6 +4285,7 @@ static int amdgpu_device_reset_sriov(struct amdgpu_device *adev,
				     bool from_hypervisor)
{
	int r;
	struct amdgpu_hive_info *hive = NULL;

	amdgpu_amdkfd_pre_reset(adev);

@@ -4313,9 +4314,19 @@ static int amdgpu_device_reset_sriov(struct amdgpu_device *adev,
	if (r)
		goto error;

	hive = amdgpu_get_xgmi_hive(adev);
	/* Update PSP FW topology after reset */
	if (hive && adev->gmc.xgmi.num_physical_nodes > 1)
		r = amdgpu_xgmi_update_topology(hive, adev);

	if (hive)
		amdgpu_put_xgmi_hive(hive);

	if (!r) {
		amdgpu_irq_gpu_reset_resume_helper(adev);
		r = amdgpu_ib_ring_tests(adev);
		amdgpu_amdkfd_post_reset(adev);
	}

error:
	if (!r && adev->virt.gim_feature & AMDGIM_FEATURE_GIM_FLR_VRAMLOST) {