diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c index 855e2196657a..7d442c51063e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | |||
@@ -342,6 +342,8 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring, | |||
342 | amdgpu_fence_driver_init_ring(ring); | 342 | amdgpu_fence_driver_init_ring(ring); |
343 | } | 343 | } |
344 | 344 | ||
345 | init_waitqueue_head(&ring->fence_drv.fence_queue); | ||
346 | |||
345 | r = amdgpu_wb_get(adev, &ring->rptr_offs); | 347 | r = amdgpu_wb_get(adev, &ring->rptr_offs); |
346 | if (r) { | 348 | if (r) { |
347 | dev_err(adev->dev, "(%d) ring rptr_offs wb alloc failed\n", r); | 349 | dev_err(adev->dev, "(%d) ring rptr_offs wb alloc failed\n", r); |
@@ -367,7 +369,7 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring, | |||
367 | } | 369 | } |
368 | ring->next_rptr_gpu_addr = adev->wb.gpu_addr + (ring->next_rptr_offs * 4); | 370 | ring->next_rptr_gpu_addr = adev->wb.gpu_addr + (ring->next_rptr_offs * 4); |
369 | ring->next_rptr_cpu_addr = &adev->wb.wb[ring->next_rptr_offs]; | 371 | ring->next_rptr_cpu_addr = &adev->wb.wb[ring->next_rptr_offs]; |
370 | 372 | spin_lock_init(&ring->fence_lock); | |
371 | r = amdgpu_fence_driver_start_ring(ring, irq_src, irq_type); | 373 | r = amdgpu_fence_driver_start_ring(ring, irq_src, irq_type); |
372 | if (r) { | 374 | if (r) { |
373 | dev_err(adev->dev, "failed initializing fences (%d).\n", r); | 375 | dev_err(adev->dev, "failed initializing fences (%d).\n", r); |