Commit 2200edac authored by Chunming Zhou's avatar Chunming Zhou Committed by Alex Deucher

drm/amdgpu: force completion for gpu reset

After all hw jobs are reset, hw fence is meaningless, so force_completion

Cc: William Lewis <minutemaidpark@hotmail.com>
Signed-off-by: default avatarChunming Zhou <David1.Zhou@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent a3c47d6b
...@@ -1947,7 +1947,8 @@ int amdgpu_gpu_reset(struct amdgpu_device *adev) ...@@ -1947,7 +1947,8 @@ int amdgpu_gpu_reset(struct amdgpu_device *adev)
continue; continue;
kthread_park(ring->sched.thread); kthread_park(ring->sched.thread);
} }
/* after all hw jobs are reset, hw fence is meaningless, so force_completion */
amdgpu_fence_driver_force_completion(adev);
/* save scratch */ /* save scratch */
amdgpu_atombios_scratch_regs_save(adev); amdgpu_atombios_scratch_regs_save(adev);
...@@ -2005,7 +2006,7 @@ int amdgpu_gpu_reset(struct amdgpu_device *adev) ...@@ -2005,7 +2006,7 @@ int amdgpu_gpu_reset(struct amdgpu_device *adev)
} }
} }
} else { } else {
amdgpu_fence_driver_force_completion(adev); dev_err(adev->dev, "asic resume failed (%d).\n", r);
for (i = 0; i < AMDGPU_MAX_RINGS; ++i) { for (i = 0; i < AMDGPU_MAX_RINGS; ++i) {
if (adev->rings[i]) { if (adev->rings[i]) {
kthread_unpark(adev->rings[i]->sched.thread); kthread_unpark(adev->rings[i]->sched.thread);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment