[PATCH] drm/amdgpu: Fix fence timeout after gpu reset

Pan, Xinhui Xinhui.Pan at amd.com
Tue May 21 04:56:21 UTC 2019


late init work will do IB tests, there is a race between late_init_work
and interrupt enablement. So call resume helper in advance. Otherwice hit
rence timeout.

Signed-off-by: xinhui pan <xinhui.pan at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 173af7ebb3f6..23612718d84b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -3545,16 +3545,19 @@ static int amdgpu_do_asic_reset(struct amdgpu_hive_info *hive,
 				if (vram_lost)
 					amdgpu_device_fill_reset_magic(tmp_adev);
 
+				/* Update PSP FW topology after reset */
+				if (hive && tmp_adev->gmc.xgmi.num_physical_nodes > 1)
+					r = amdgpu_xgmi_update_topology(hive, tmp_adev);
+
+				/* late_init_work do ib tests, so enable interrupt. */
+				amdgpu_irq_gpu_reset_resume_helper(tmp_adev);
+
 				r = amdgpu_device_ip_late_init(tmp_adev);
 				if (r)
 					goto out;
 
 				/* must succeed. */
 				amdgpu_ras_resume(tmp_adev);
-
-				/* Update PSP FW topology after reset */
-				if (hive && tmp_adev->gmc.xgmi.num_physical_nodes > 1)
-					r = amdgpu_xgmi_update_topology(hive, tmp_adev);
 			}
 		}
 
-- 
2.17.1



More information about the amd-gfx mailing list