Lines Matching defs:ring

38  * command ring and the hw will fetch the commands from the IB
41 * put in IBs for execution by the requested ring.
49 * @ring: ring index the IB is associated with
58 int radeon_ib_get(struct radeon_device *rdev, int ring,
72 ib->ring = ring;
105 * radeon_ib_schedule - schedule an IB (Indirect Buffer) on the ring
112 * Schedule an IB on the associated ring (all asics).
115 * On SI, there are two parallel engines fed from the primary ring,
122 * a CONST_IB), it will be put on the ring prior to the DE IB. Prior
128 struct radeon_ring *ring = &rdev->ring[ib->ring];
131 if (!ib->length_dw || !ring->ready) {
138 r = radeon_ring_lock(rdev, ring, 64 + RADEON_NUM_SYNCS * 8);
147 vm_id_fence = radeon_vm_grab_id(rdev, ib->vm, ib->ring);
152 r = radeon_sync_rings(rdev, &ib->sync, ib->ring);
155 radeon_ring_unlock_undo(rdev, ring);
160 radeon_vm_flush(rdev, ib->vm, ib->ring,
164 radeon_ring_ib_execute(rdev, const_ib->ring, const_ib);
167 radeon_ring_ib_execute(rdev, ib->ring, ib);
168 r = radeon_fence_emit(rdev, &ib->fence, ib->ring);
171 radeon_ring_unlock_undo(rdev, ring);
181 radeon_ring_unlock_commit(rdev, ring, hdp_flush);
251 * Test an IB (Indirect Buffer) on each ring.
252 * If the test fails, disable the ring.
253 * Returns 0 on success, error if the primary GFX ring
262 struct radeon_ring *ring = &rdev->ring[i];
264 if (!ring->ready)
267 r = radeon_ib_test(rdev, i, ring);
270 ring->ready = false;
275 DRM_ERROR("radeon: failed testing IB on GFX ring (%d).\n", r);
281 DRM_ERROR("radeon: failed testing IB on ring %d (%d).\n", i, r);