aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.h')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
index 68b1ca974d59..71a73f4fe252 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -34,6 +34,7 @@ struct intel_hw_status_page {
34#define I915_WRITE_IMR(ring, val) I915_WRITE(RING_IMR((ring)->mmio_base), val) 34#define I915_WRITE_IMR(ring, val) I915_WRITE(RING_IMR((ring)->mmio_base), val)
35 35
36enum intel_ring_hangcheck_action { 36enum intel_ring_hangcheck_action {
37 HANGCHECK_IDLE = 0,
37 HANGCHECK_WAIT, 38 HANGCHECK_WAIT,
38 HANGCHECK_ACTIVE, 39 HANGCHECK_ACTIVE,
39 HANGCHECK_KICK, 40 HANGCHECK_KICK,
@@ -140,7 +141,8 @@ struct intel_ring_buffer {
140 /** 141 /**
141 * Do we have some not yet emitted requests outstanding? 142 * Do we have some not yet emitted requests outstanding?
142 */ 143 */
143 u32 outstanding_lazy_request; 144 struct drm_i915_gem_request *preallocated_lazy_request;
145 u32 outstanding_lazy_seqno;
144 bool gpu_caches_dirty; 146 bool gpu_caches_dirty;
145 bool fbc_dirty; 147 bool fbc_dirty;
146 148
@@ -237,7 +239,12 @@ static inline void intel_ring_emit(struct intel_ring_buffer *ring,
237 iowrite32(data, ring->virtual_start + ring->tail); 239 iowrite32(data, ring->virtual_start + ring->tail);
238 ring->tail += 4; 240 ring->tail += 4;
239} 241}
240void intel_ring_advance(struct intel_ring_buffer *ring); 242static inline void intel_ring_advance(struct intel_ring_buffer *ring)
243{
244 ring->tail &= ring->size - 1;
245}
246void __intel_ring_advance(struct intel_ring_buffer *ring);
247
241int __must_check intel_ring_idle(struct intel_ring_buffer *ring); 248int __must_check intel_ring_idle(struct intel_ring_buffer *ring);
242void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno); 249void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno);
243int intel_ring_flush_all_caches(struct intel_ring_buffer *ring); 250int intel_ring_flush_all_caches(struct intel_ring_buffer *ring);
@@ -258,8 +265,8 @@ static inline u32 intel_ring_get_tail(struct intel_ring_buffer *ring)
258 265
259static inline u32 intel_ring_get_seqno(struct intel_ring_buffer *ring) 266static inline u32 intel_ring_get_seqno(struct intel_ring_buffer *ring)
260{ 267{
261 BUG_ON(ring->outstanding_lazy_request == 0); 268 BUG_ON(ring->outstanding_lazy_seqno == 0);
262 return ring->outstanding_lazy_request; 269 return ring->outstanding_lazy_seqno;
263} 270}
264 271
265static inline void i915_trace_irq_get(struct intel_ring_buffer *ring, u32 seqno) 272static inline void i915_trace_irq_get(struct intel_ring_buffer *ring, u32 seqno)