summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.h
diff options
context:
space:
mode:
authorBen Widawsky <benjamin.widawsky@intel.com>2014-04-29 14:52:29 -0700
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-05-05 10:56:53 +0200
commit78325f2d270897c9ee0887125b7abb963eb8efea (patch)
tree68112f7fcd949ced753c0ff964d6fa3eed5ad105 /drivers/gpu/drm/i915/intel_ringbuffer.h
parentebc348b2ad59ed5c9b22269f422d12095b640ff5 (diff)
downloadop-kernel-dev-78325f2d270897c9ee0887125b7abb963eb8efea.zip
op-kernel-dev-78325f2d270897c9ee0887125b7abb963eb8efea.tar.gz
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 6a44a64..830ff26 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 {
struct {
u32 sync_seqno[I915_NUM_RINGS-1];
- /* AKA wait() */
- int (*sync_to)(struct intel_ring_buffer *ring,
- struct intel_ring_buffer *to,
- u32 seqno);
+
struct {
/* our mbox written by others */
u32 wait[I915_NUM_RINGS];
/* mboxes this ring signals to */
u32 signal[I915_NUM_RINGS];
} mbox;
+
+ /* AKA wait() */
+ int (*sync_to)(struct intel_ring_buffer *ring,
+ struct intel_ring_buffer *to,
+ u32 seqno);
+ void (*signal)(struct intel_ring_buffer *signaller);
} semaphore;
/**
OpenPOWER on IntegriCloud