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);
605 bool radeon_semaphore_emit_signal(struct radeon_device *rdev, int ring,
607 bool radeon_semaphore_emit_wait(struct radeon_device *rdev, int ring,
812 void radeon_irq_kms_sw_irq_get(struct radeon_device *rdev, int ring);
813 bool radeon_irq_kms_sw_irq_get_delayed(struct radeon_device *rdev, int ring);
814 void radeon_irq_kms_sw_irq_put(struct radeon_device *rdev, int ring);
831 int ring;
840 volatile uint32_t *ring;
947 /* for id and flush management per ring */
972 * R6xx+ IH ring
976 volatile uint32_t *ring;
1010 int radeon_ib_get(struct radeon_device *rdev, int ring,
1021 struct radeon_ring *ring);
1029 void radeon_ring_undo(struct radeon_ring *ring);
1033 struct radeon_ring *ring);
1034 bool radeon_ring_test_lockup(struct radeon_device *rdev, struct radeon_ring *ring);
1035 unsigned radeon_ring_backup(struct radeon_device *rdev, struct radeon_ring *ring,
1037 int radeon_ring_restore(struct radeon_device *rdev, struct radeon_ring *ring,
1089 u32 ring;
1690 int radeon_uvd_get_create_msg(struct radeon_device *rdev, int ring,
1692 int radeon_uvd_get_destroy_msg(struct radeon_device *rdev, int ring,
1733 int radeon_vce_get_create_msg(struct radeon_device *rdev, int ring,
1735 int radeon_vce_get_destroy_msg(struct radeon_device *rdev, int ring,
1742 struct radeon_ring *ring,
1748 int radeon_vce_ring_test(struct radeon_device *rdev, struct radeon_ring *ring);
1749 int radeon_vce_ib_test(struct radeon_device *rdev, struct radeon_ring *ring);
1814 * ASIC ring specific functions.
1817 /* ring read/write ptr handling */
1818 u32 (*get_rptr)(struct radeon_device *rdev, struct radeon_ring *ring);
1819 u32 (*get_wptr)(struct radeon_device *rdev, struct radeon_ring *ring);
1820 void (*set_wptr)(struct radeon_device *rdev, struct radeon_ring *ring);
1829 void (*hdp_flush)(struct radeon_device *rdev, struct radeon_ring *ring);
1832 void (*vm_flush)(struct radeon_device *rdev, struct radeon_ring *ring,
1892 /* ring specific callbacks */
1893 const struct radeon_asic_ring *ring[RADEON_NUM_RINGS];
1935 /* ring used for bo copies */
2382 struct radeon_ring ring[RADEON_NUM_RINGS];
2414 struct r600_ih ih; /* r6/700 interrupt ring */
2684 * radeon_ring_write - write a value to the ring
2686 * @ring: radeon_ring structure holding ring information
2689 * Write a value to the requested ring buffer (all asics).
2691 static inline void radeon_ring_write(struct radeon_ring *ring, uint32_t v)
2693 if (ring->count_dw <= 0)
2694 DRM_ERROR("radeon: writing more dwords to the ring than expected!\n");
2696 ring->ring[ring->wptr++] = v;
2697 ring->wptr &= ring->ptr_mask;
2698 ring->count_dw--;
2699 ring->ring_free_dw--;
2709 #define radeon_cs_parse(rdev, r, p) (rdev)->asic->ring[(r)]->cs_parse((p))
2721 #define radeon_ring_start(rdev, r, cp) (rdev)->asic->ring[(r)]->ring_start((rdev), (cp))
2722 #define radeon_ring_test(rdev, r, cp) (rdev)->asic->ring[(r)]->ring_test((rdev), (cp))
2723 #define radeon_ib_test(rdev, r, cp) (rdev)->asic->ring[(r)]->ib_test((rdev), (cp))
2724 #define radeon_ring_ib_execute(rdev, r, ib) (rdev)->asic->ring[(r)]->ib_execute((rdev), (ib))
2725 #define radeon_ring_ib_parse(rdev, r, ib) (rdev)->asic->ring[(r)]->ib_parse((rdev), (ib))
2726 #define radeon_ring_is_lockup(rdev, r, cp) (rdev)->asic->ring[(r)]->is_lockup((rdev), (cp))
2727 #define radeon_ring_vm_flush(rdev, r, vm_id, pd_addr) (rdev)->asic->ring[(r)->idx]->vm_flush((rdev), (r), (vm_id), (pd_addr))
2728 #define radeon_ring_get_rptr(rdev, r) (rdev)->asic->ring[(r)->idx]->get_rptr((rdev), (r))
2729 #define radeon_ring_get_wptr(rdev, r) (rdev)->asic->ring[(r)->idx]->get_wptr((rdev), (r))
2730 #define radeon_ring_set_wptr(rdev, r) (rdev)->asic->ring[(r)->idx]->set_wptr((rdev), (r))
2738 #define radeon_fence_ring_emit(rdev, r, fence) (rdev)->asic->ring[(r)]->emit_fence((rdev), (fence))
2739 #define radeon_semaphore_ring_emit(rdev, r, cp, semaphore, emit_wait) (rdev)->asic->ring[(r)]->emit_semaphore((rdev), (cp), (semaphore), (emit_wait))
2847 struct radeon_vm *vm, int ring);
2850 int ring, struct radeon_fence *fence);