drm/amdgpu: recovery hw jobs when gpu reset V3
[deliverable/linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_device.c
index 21e02df63730651a88b4ff3a3fa33102f6e1bb24..5ec4ea060bd045b5264661cd71861c9a4ec8e239 100644 (file)
@@ -1946,6 +1946,7 @@ int amdgpu_gpu_reset(struct amdgpu_device *adev)
                if (!ring)
                        continue;
                kthread_park(ring->sched.thread);
+               amd_sched_hw_job_reset(&ring->sched);
        }
        /* after all hw jobs are reset, hw fence is meaningless, so force_completion */
        amdgpu_fence_driver_force_completion(adev);
@@ -1990,8 +1991,9 @@ retry:
                        struct amdgpu_ring *ring = adev->rings[i];
                        if (!ring)
                                continue;
+                       amd_sched_job_recovery(&ring->sched);
                        kthread_unpark(ring->sched.thread);
-                       amdgpu_ring_restore(ring, ring_sizes[i], ring_data[i]);
+                       kfree(ring_data[i]);
                        ring_sizes[i] = 0;
                        ring_data[i] = NULL;
                }
This page took 0.025157 seconds and 5 git commands to generate.