diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.h')
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.h | 15 |
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 | ||
36 | enum intel_ring_hangcheck_action { | 36 | enum 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 | } |
240 | void intel_ring_advance(struct intel_ring_buffer *ring); | 242 | static inline void intel_ring_advance(struct intel_ring_buffer *ring) |
243 | { | ||
244 | ring->tail &= ring->size - 1; | ||
245 | } | ||
246 | void __intel_ring_advance(struct intel_ring_buffer *ring); | ||
247 | |||
241 | int __must_check intel_ring_idle(struct intel_ring_buffer *ring); | 248 | int __must_check intel_ring_idle(struct intel_ring_buffer *ring); |
242 | void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno); | 249 | void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno); |
243 | int intel_ring_flush_all_caches(struct intel_ring_buffer *ring); | 250 | int 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 | ||
259 | static inline u32 intel_ring_get_seqno(struct intel_ring_buffer *ring) | 266 | static 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 | ||
265 | static inline void i915_trace_irq_get(struct intel_ring_buffer *ring, u32 seqno) | 272 | static inline void i915_trace_irq_get(struct intel_ring_buffer *ring, u32 seqno) |