diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 8 | 
1 files changed, 8 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c index 14499f0de32d..8d682befe0d6 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c @@ -552,6 +552,9 @@ void amdgpu_fence_driver_hw_fini(struct amdgpu_device *adev)  		if (!ring || !ring->fence_drv.initialized)  			continue; +		if (!ring->no_scheduler) +			drm_sched_stop(&ring->sched, NULL); +  		/* You can't wait for HW to signal if it's gone */  		if (!drm_dev_is_unplugged(&adev->ddev))  			r = amdgpu_fence_wait_empty(ring); @@ -611,6 +614,11 @@ void amdgpu_fence_driver_hw_init(struct amdgpu_device *adev)  		if (!ring || !ring->fence_drv.initialized)  			continue; +		if (!ring->no_scheduler) { +			drm_sched_resubmit_jobs(&ring->sched); +			drm_sched_start(&ring->sched, true); +		} +  		/* enable the interrupt */  		if (ring->fence_drv.irq_src)  			amdgpu_irq_get(adev, ring->fence_drv.irq_src, | 
