[PATCH 06/12] drm/amdgpu: force completion for gpu reset
Christian König
deathsimple at vodafone.de
Fri Jul 1 09:22:53 UTC 2016
Am 30.06.2016 um 11:34 schrieb Chunming Zhou:
> After all hw jobs are reset, hw fence is meanless, so force_completion
>
> Change-Id: I85caa8a73cfdd9ef401499fa6f8a1a9146b0eb80
> Signed-off-by: Chunming Zhou <David1.Zhou at amd.com>
Reviewed-by: Christian König <christian.koenig at amd.com>.
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index f71db10..a3ca83f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -1956,7 +1956,8 @@ int amdgpu_gpu_reset(struct amdgpu_device *adev)
> kthread_park(ring->sched.thread);
> amd_sched_hw_job_reset(&ring->sched);
> }
> -
> + /* after all hw jobs are reset, hw fence is meanless, so force_completion */
> + amdgpu_fence_driver_force_completion(adev);
> /* store modesetting */
> if (amdgpu_device_has_dal_support(adev))
> state = drm_atomic_helper_suspend(adev->ddev);
> @@ -1996,7 +1997,7 @@ retry:
> }
> /* restore scratch */
> amdgpu_atombios_scratch_regs_restore(adev);
> - if (0) {
> + if (!r) {
> for (i = 0; i < AMDGPU_MAX_RINGS; ++i) {
> struct amdgpu_ring *ring = adev->rings[i];
> if (!ring)
> @@ -2017,7 +2018,7 @@ retry:
> }
> }
> } 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) {
> if (adev->rings[i]) {
> kthread_unpark(adev->rings[i]->sched.thread);
More information about the amd-gfx
mailing list