For SIORV VF, XGMI was not initialized during recover. This change added
XGMI initialization for SRIOV VF during recover.

Signed-off-by: Zhigang Luo <zhigang....@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index b48d68d30d80..103bcadbc8b8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -2452,6 +2452,18 @@ static int psp_load_fw(struct amdgpu_device *adev)
                return ret;
        }
 
+       if (amdgpu_sriov_vf(adev) && amdgpu_in_reset(adev)) {
+               if (adev->gmc.xgmi.num_physical_nodes > 1) {
+                       ret = psp_xgmi_initialize(psp, false, true);
+                       /* Warning the XGMI seesion initialize failure
+                       * Instead of stop driver initialization
+                       */
+                       if (ret)
+                               dev_err(psp->adev->dev,
+                                       "XGMI: Failed to initialize XGMI 
session\n");
+               }
+       }
+
        if (psp->ta_fw) {
                ret = psp_ras_initialize(psp);
                if (ret)
-- 
2.17.1

Reply via email to