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);