]> Pileus Git - ~andy/linux/blobdiff - drivers/gpu/drm/i915/intel_ringbuffer.h
drm/i915: Remove the now obsolete infoframe definitions
[~andy/linux] / drivers / gpu / drm / i915 / intel_ringbuffer.h
index 24268fbe685521a54f35d2dfb6ea343903d78044..6e38256d41e1241af7f0f380edcf0508ddee44b6 100644 (file)
@@ -37,8 +37,14 @@ struct  intel_hw_status_page {
 #define I915_READ_SYNC_0(ring) I915_READ(RING_SYNC_0((ring)->mmio_base))
 #define I915_READ_SYNC_1(ring) I915_READ(RING_SYNC_1((ring)->mmio_base))
 
+enum intel_ring_hangcheck_action { wait, active, kick, hung };
+
 struct intel_ring_hangcheck {
+       bool deadlock;
        u32 seqno;
+       u32 acthd;
+       int score;
+       enum intel_ring_hangcheck_action action;
 };
 
 struct  intel_ring_buffer {
@@ -47,8 +53,9 @@ struct  intel_ring_buffer {
                RCS = 0x0,
                VCS,
                BCS,
+               VECS,
        } id;
-#define I915_NUM_RINGS 3
+#define I915_NUM_RINGS 4
        u32             mmio_base;
        void            __iomem *virtual_start;
        struct          drm_device *dev;
@@ -71,7 +78,7 @@ struct  intel_ring_buffer {
         */
        u32             last_retired_head;
 
-       u32             irq_refcount;           /* protected by dev_priv->irq_lock */
+       unsigned irq_refcount; /* protected by dev_priv->irq_lock */
        u32             irq_enable_mask;        /* bitmask to enable ring interrupt */
        u32             trace_irq_seqno;
        u32             sync_seqno[I915_NUM_RINGS-1];
@@ -105,9 +112,12 @@ struct  intel_ring_buffer {
        int             (*sync_to)(struct intel_ring_buffer *ring,
                                   struct intel_ring_buffer *to,
                                   u32 seqno);
+
        /* our mbox written by others */
        u32             semaphore_register[I915_NUM_RINGS];
-       u32             signal_mbox[2]; /* mboxes this ring signals to */
+       /* mboxes this ring signals to */
+       u32             signal_mbox[I915_NUM_RINGS];
+
        /**
         * List of objects currently involved in rendering from the
         * ringbuffer.
@@ -131,6 +141,7 @@ struct  intel_ring_buffer {
         */
        u32 outstanding_lazy_request;
        bool gpu_caches_dirty;
+       bool fbc_dirty;
 
        wait_queue_head_t irq_queue;
 
@@ -230,6 +241,7 @@ int intel_ring_invalidate_all_caches(struct intel_ring_buffer *ring);
 int intel_init_render_ring_buffer(struct drm_device *dev);
 int intel_init_bsd_ring_buffer(struct drm_device *dev);
 int intel_init_blt_ring_buffer(struct drm_device *dev);
+int intel_init_vebox_ring_buffer(struct drm_device *dev);
 
 u32 intel_ring_get_active_head(struct intel_ring_buffer *ring);
 void intel_ring_setup_status_page(struct intel_ring_buffer *ring);