diff options
author | Ben Widawsky <benjamin.widawsky@intel.com> | 2014-04-29 17:52:29 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-05-05 04:56:53 -0400 |
commit | 78325f2d270897c9ee0887125b7abb963eb8efea (patch) | |
tree | 68112f7fcd949ced753c0ff964d6fa3eed5ad105 /drivers/gpu/drm/i915/intel_ringbuffer.h | |
parent | ebc348b2ad59ed5c9b22269f422d12095b640ff5 (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.h | 11 |
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 | /** |