aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.h
diff options
context:
space:
mode:
authorBen Widawsky <benjamin.widawsky@intel.com>2014-04-29 17:52:29 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-05-05 04:56:53 -0400
commit78325f2d270897c9ee0887125b7abb963eb8efea (patch)
tree68112f7fcd949ced753c0ff964d6fa3eed5ad105 /drivers/gpu/drm/i915/intel_ringbuffer.h
parentebc348b2ad59ed5c9b22269f422d12095b640ff5 (diff)
drm/i915: Virtualize the ringbuffer signal func
This abstraction again is in preparation for gen8. Gen8 will bring new semantics for doing this operation. While here, make the writes of MI_NOOPs explicit for non-existent rings. This should have been implicit before. NOTE: This is going to be removed in a few patches. Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.h')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
index 6a44a64b4d70..830ff26aaddc 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -120,16 +120,19 @@ struct intel_ring_buffer {
120 120
121 struct { 121 struct {
122 u32 sync_seqno[I915_NUM_RINGS-1]; 122 u32 sync_seqno[I915_NUM_RINGS-1];
123 /* AKA wait() */ 123
124 int (*sync_to)(struct intel_ring_buffer *ring,
125 struct intel_ring_buffer *to,
126 u32 seqno);
127 struct { 124 struct {
128 /* our mbox written by others */ 125 /* our mbox written by others */
129 u32 wait[I915_NUM_RINGS]; 126 u32 wait[I915_NUM_RINGS];
130 /* mboxes this ring signals to */ 127 /* mboxes this ring signals to */
131 u32 signal[I915_NUM_RINGS]; 128 u32 signal[I915_NUM_RINGS];
132 } mbox; 129 } mbox;
130
131 /* AKA wait() */
132 int (*sync_to)(struct intel_ring_buffer *ring,
133 struct intel_ring_buffer *to,
134 u32 seqno);
135 void (*signal)(struct intel_ring_buffer *signaller);
133 } semaphore; 136 } semaphore;
134 137
135 /** 138 /**