Lines Matching defs:ring

138 /* internal ring indices */
139 /* r1xx+ has gfx CP ring */
146 /* R600+ has an async dma ring */
148 /* cayman add a second async dma ring */
368 /* sync_seq is protected by ring emission lock */
381 unsigned ring;
387 int radeon_fence_driver_start_ring(struct radeon_device *rdev, int ring);
390 void radeon_fence_driver_force_completion(struct radeon_device *rdev, int ring);
391 int radeon_fence_emit(struct radeon_device *rdev, struct radeon_fence **fence, int ring);
392 void radeon_fence_process(struct radeon_device *rdev, int ring);
396 int radeon_fence_wait_next(struct radeon_device *rdev, int ring);
397 int radeon_fence_wait_empty(struct radeon_device *rdev, int ring);
403 unsigned radeon_fence_count_emitted(struct radeon_device *rdev, int ring);
404 bool radeon_fence_need_sync(struct radeon_fence *fence, int ring);
405 void radeon_fence_note_sync(struct radeon_fence *fence, int ring);
417 BUG_ON(a->ring != b->ring);
437 BUG_ON(a->ring != b->ring);
560 bool radeon_semaphore_emit_signal(struct radeon_device *rdev, int ring,
562 bool radeon_semaphore_emit_wait(struct radeon_device *rdev, int ring,
767 void radeon_irq_kms_sw_irq_get(struct radeon_device *rdev, int ring);
768 bool radeon_irq_kms_sw_irq_get_delayed(struct radeon_device *rdev, int ring);
769 void radeon_irq_kms_sw_irq_put(struct radeon_device *rdev, int ring);
786 int ring;
796 volatile uint32_t *ring;
903 /* for id and flush management per ring */
928 * R6xx+ IH ring
932 volatile uint32_t *ring;
966 int radeon_ib_get(struct radeon_device *rdev, int ring,
977 struct radeon_ring *ring);
985 void radeon_ring_undo(struct radeon_ring *ring);
989 struct radeon_ring *ring);
990 bool radeon_ring_test_lockup(struct radeon_device *rdev, struct radeon_ring *ring);
991 unsigned radeon_ring_backup(struct radeon_device *rdev, struct radeon_ring *ring,
993 int radeon_ring_restore(struct radeon_device *rdev, struct radeon_ring *ring,
1045 u32 ring;
1683 int radeon_uvd_get_create_msg(struct radeon_device *rdev, int ring,
1685 int radeon_uvd_get_destroy_msg(struct radeon_device *rdev, int ring,
1726 int radeon_vce_get_create_msg(struct radeon_device *rdev, int ring,
1728 int radeon_vce_get_destroy_msg(struct radeon_device *rdev, int ring,
1735 struct radeon_ring *ring,
1741 int radeon_vce_ring_test(struct radeon_device *rdev, struct radeon_ring *ring);
1742 int radeon_vce_ib_test(struct radeon_device *rdev, struct radeon_ring *ring);
1803 * ASIC ring specific functions.
1806 /* ring read/write ptr handling */
1807 u32 (*get_rptr)(struct radeon_device *rdev, struct radeon_ring *ring);
1808 u32 (*get_wptr)(struct radeon_device *rdev, struct radeon_ring *ring);
1809 void (*set_wptr)(struct radeon_device *rdev, struct radeon_ring *ring);
1818 void (*hdp_flush)(struct radeon_device *rdev, struct radeon_ring *ring);
1821 void (*vm_flush)(struct radeon_device *rdev, struct radeon_ring *ring,
1881 /* ring specific callbacks */
1882 const struct radeon_asic_ring *ring[RADEON_NUM_RINGS];
1924 /* ring used for bo copies */
2373 struct radeon_ring ring[RADEON_NUM_RINGS];
2405 struct r600_ih ih; /* r6/700 interrupt ring */
2670 * radeon_ring_write - write a value to the ring
2672 * @ring: radeon_ring structure holding ring information
2675 * Write a value to the requested ring buffer (all asics).
2677 static inline void radeon_ring_write(struct radeon_ring *ring, uint32_t v)
2679 if (ring->count_dw <= 0)
2680 DRM_ERROR("radeon: writing more dwords to the ring than expected!\n");
2682 ring->ring[ring->wptr++] = v;
2683 ring->wptr &= ring->ptr_mask;
2684 ring->count_dw--;
2685 ring->ring_free_dw--;
2695 #define radeon_cs_parse(rdev, r, p) (rdev)->asic->ring[(r)]->cs_parse((p))
2707 #define radeon_ring_start(rdev, r, cp) (rdev)->asic->ring[(r)]->ring_start((rdev), (cp))
2708 #define radeon_ring_test(rdev, r, cp) (rdev)->asic->ring[(r)]->ring_test((rdev), (cp))
2709 #define radeon_ib_test(rdev, r, cp) (rdev)->asic->ring[(r)]->ib_test((rdev), (cp))
2710 #define radeon_ring_ib_execute(rdev, r, ib) (rdev)->asic->ring[(r)]->ib_execute((rdev), (ib))
2711 #define radeon_ring_ib_parse(rdev, r, ib) (rdev)->asic->ring[(r)]->ib_parse((rdev), (ib))
2712 #define radeon_ring_is_lockup(rdev, r, cp) (rdev)->asic->ring[(r)]->is_lockup((rdev), (cp))
2713 #define radeon_ring_vm_flush(rdev, r, vm_id, pd_addr) (rdev)->asic->ring[(r)->idx]->vm_flush((rdev), (r), (vm_id), (pd_addr))
2714 #define radeon_ring_get_rptr(rdev, r) (rdev)->asic->ring[(r)->idx]->get_rptr((rdev), (r))
2715 #define radeon_ring_get_wptr(rdev, r) (rdev)->asic->ring[(r)->idx]->get_wptr((rdev), (r))
2716 #define radeon_ring_set_wptr(rdev, r) (rdev)->asic->ring[(r)->idx]->set_wptr((rdev), (r))
2724 #define radeon_fence_ring_emit(rdev, r, fence) (rdev)->asic->ring[(r)]->emit_fence((rdev), (fence))
2725 #define radeon_semaphore_ring_emit(rdev, r, cp, semaphore, emit_wait) (rdev)->asic->ring[(r)]->emit_semaphore((rdev), (cp), (semaphore), (emit_wait))
2839 struct radeon_vm *vm, int ring);
2842 int ring, struct radeon_fence *fence);