Lines Matching refs:ring
58 int amdgpu_ib_get(struct amdgpu_ring *ring, struct amdgpu_vm *vm, in amdgpu_ib_get() argument
61 struct amdgpu_device *adev = ring->adev; in amdgpu_ib_get()
80 ib->ring = ring; in amdgpu_ib_get()
127 struct amdgpu_ring *ring; in amdgpu_ib_schedule() local
136 ring = ibs->ring; in amdgpu_ib_schedule()
140 if (!ring->ready) { in amdgpu_ib_schedule()
149 r = amdgpu_ring_lock(ring, (256 + AMDGPU_NUM_SYNCS * 8) * num_ibs); in amdgpu_ib_schedule()
157 r = amdgpu_vm_grab_id(ibs->vm, ibs->ring, &ibs->sync); in amdgpu_ib_schedule()
159 amdgpu_ring_unlock_undo(ring); in amdgpu_ib_schedule()
164 r = amdgpu_sync_rings(&ibs->sync, ring); in amdgpu_ib_schedule()
166 amdgpu_ring_unlock_undo(ring); in amdgpu_ib_schedule()
173 amdgpu_vm_flush(ring, vm, ib->sync.last_vm_update); in amdgpu_ib_schedule()
175 if (ring->funcs->emit_gds_switch) in amdgpu_ib_schedule()
176 amdgpu_ring_emit_gds_switch(ring, ib->vm->ids[ring->idx].id, in amdgpu_ib_schedule()
181 if (ring->funcs->emit_hdp_flush) in amdgpu_ib_schedule()
182 amdgpu_ring_emit_hdp_flush(ring); in amdgpu_ib_schedule()
185 old_ctx = ring->current_ctx; in amdgpu_ib_schedule()
189 if (ib->ring != ring || ib->ctx != ctx || ib->vm != vm) { in amdgpu_ib_schedule()
190 ring->current_ctx = old_ctx; in amdgpu_ib_schedule()
191 amdgpu_ring_unlock_undo(ring); in amdgpu_ib_schedule()
194 amdgpu_ring_emit_ib(ring, ib); in amdgpu_ib_schedule()
195 ring->current_ctx = ctx; in amdgpu_ib_schedule()
198 r = amdgpu_fence_emit(ring, owner, &ib->fence); in amdgpu_ib_schedule()
201 ring->current_ctx = old_ctx; in amdgpu_ib_schedule()
202 amdgpu_ring_unlock_undo(ring); in amdgpu_ib_schedule()
207 ib->sequence = amdgpu_ctx_add_fence(ib->ctx, ring, in amdgpu_ib_schedule()
214 amdgpu_ring_emit_fence(ring, addr, ib->sequence, in amdgpu_ib_schedule()
221 amdgpu_ring_unlock_commit(ring); in amdgpu_ib_schedule()
294 struct amdgpu_ring *ring = adev->rings[i]; in amdgpu_ib_ring_tests() local
296 if (!ring || !ring->ready) in amdgpu_ib_ring_tests()
299 r = amdgpu_ring_test_ib(ring); in amdgpu_ib_ring_tests()
301 ring->ready = false; in amdgpu_ib_ring_tests()
303 if (ring == &adev->gfx.gfx_ring[0]) { in amdgpu_ib_ring_tests()