Lines Matching refs:ring

24 #define I915_READ_TAIL(ring) I915_READ(RING_TAIL((ring)->mmio_base))
25 #define I915_WRITE_TAIL(ring, val) I915_WRITE(RING_TAIL((ring)->mmio_base), val)
27 #define I915_READ_START(ring) I915_READ(RING_START((ring)->mmio_base))
28 #define I915_WRITE_START(ring, val) I915_WRITE(RING_START((ring)->mmio_base), val)
30 #define I915_READ_HEAD(ring) I915_READ(RING_HEAD((ring)->mmio_base))
31 #define I915_WRITE_HEAD(ring, val) I915_WRITE(RING_HEAD((ring)->mmio_base), val)
33 #define I915_READ_CTL(ring) I915_READ(RING_CTL((ring)->mmio_base))
34 #define I915_WRITE_CTL(ring, val) I915_WRITE(RING_CTL((ring)->mmio_base), val)
36 #define I915_READ_IMR(ring) I915_READ(RING_IMR((ring)->mmio_base))
37 #define I915_WRITE_IMR(ring, val) I915_WRITE(RING_IMR((ring)->mmio_base), val)
39 #define I915_READ_NOPID(ring) I915_READ(RING_NOPID((ring)->mmio_base))
40 #define I915_READ_SYNC_0(ring) I915_READ(RING_SYNC_0((ring)->mmio_base))
41 #define I915_READ_SYNC_1(ring) I915_READ(RING_SYNC_1((ring)->mmio_base))
63 /** We track the position of the requests in the ring buffer, and
74 u32 irq_enable_mask; /* bitmask to enable ring interrupt */
77 bool __must_check (*irq_get)(struct intel_ring_buffer *ring);
78 void (*irq_put)(struct intel_ring_buffer *ring);
80 int (*init)(struct intel_ring_buffer *ring);
82 void (*write_tail)(struct intel_ring_buffer *ring,
84 int __must_check (*flush)(struct intel_ring_buffer *ring,
87 int (*add_request)(struct intel_ring_buffer *ring);
94 u32 (*get_seqno)(struct intel_ring_buffer *ring,
96 int (*dispatch_execbuffer)(struct intel_ring_buffer *ring,
101 void (*cleanup)(struct intel_ring_buffer *ring);
102 int (*sync_to)(struct intel_ring_buffer *ring,
107 u32 signal_mbox[2]; /* mboxes this ring signals to */
145 intel_ring_initialized(struct intel_ring_buffer *ring)
147 return ring->obj != NULL;
151 intel_ring_flag(struct intel_ring_buffer *ring)
153 return 1 << ring->id;
157 intel_ring_sync_index(struct intel_ring_buffer *ring,
168 idx = (other - ring) - 1;
176 intel_read_status_page(struct intel_ring_buffer *ring,
181 return atomic_load_acq_32(ring->status_page.page_addr + reg);
191 * 0x04: ring 0 head pointer
192 * 0x05: ring 1 head pointer (915-class)
193 * 0x06: ring 2 head pointer (915-class)
203 void intel_cleanup_ring_buffer(struct intel_ring_buffer *ring);
205 int __must_check intel_ring_begin(struct intel_ring_buffer *ring, int n);
206 static inline void intel_ring_emit(struct intel_ring_buffer *ring,
209 iowrite32(data, ring->virtual_start + ring->tail);
210 ring->tail += 4;
212 void intel_ring_advance(struct intel_ring_buffer *ring);
213 int __must_check intel_ring_idle(struct intel_ring_buffer *ring);
215 int intel_ring_flush_all_caches(struct intel_ring_buffer *ring);
216 int intel_ring_invalidate_all_caches(struct intel_ring_buffer *ring);
222 u32 intel_ring_get_active_head(struct intel_ring_buffer *ring);
223 void intel_ring_setup_status_page(struct intel_ring_buffer *ring);
225 static inline u32 intel_ring_get_tail(struct intel_ring_buffer *ring)
227 return ring->tail;
230 static inline u32 intel_ring_get_seqno(struct intel_ring_buffer *ring)
232 BUG_ON(ring->outstanding_lazy_request == 0);
233 return ring->outstanding_lazy_request;
237 static inline void i915_trace_irq_get(struct intel_ring_buffer *ring, u32 seqno)
239 if (ring->trace_irq_seqno == 0 && ring->irq_get(ring))
240 ring->trace_irq_seqno = seqno;