]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/gpu/drm/i915/intel_ringbuffer.h
drm/i915: intel_ring_initialized() must be simple and inline
[karo-tx-linux.git] / drivers / gpu / drm / i915 / intel_ringbuffer.h
index 49fa41dc0eb66af4ee7ba10c15f6948ad84bb079..49574ffe54bcf8420d33290a89e67f70d8d7b945 100644 (file)
@@ -100,6 +100,7 @@ struct intel_ringbuffer {
        void __iomem *virtual_start;
 
        struct intel_engine_cs *ring;
+       struct list_head link;
 
        u32 head;
        u32 tail;
@@ -157,6 +158,7 @@ struct  intel_engine_cs {
        u32             mmio_base;
        struct          drm_device *dev;
        struct intel_ringbuffer *buffer;
+       struct list_head buffers;
 
        /*
         * A pool of objects to use as shadow copies of client batch buffers
@@ -247,7 +249,7 @@ struct  intel_engine_cs {
                                /* our mbox written by others */
                                u32             wait[I915_NUM_RINGS];
                                /* mboxes this ring signals to */
-                               u32             signal[I915_NUM_RINGS];
+                               i915_reg_t      signal[I915_NUM_RINGS];
                        } mbox;
                        u64             signal_ggtt[I915_NUM_RINGS];
                };
@@ -348,7 +350,11 @@ struct  intel_engine_cs {
        u32 (*get_cmd_length_mask)(u32 cmd_header);
 };
 
-bool intel_ring_initialized(struct intel_engine_cs *ring);
+static inline bool
+intel_ring_initialized(struct intel_engine_cs *ring)
+{
+       return ring->dev != NULL;
+}
 
 static inline unsigned
 intel_ring_flag(struct intel_engine_cs *ring)
@@ -441,6 +447,11 @@ static inline void intel_ring_emit(struct intel_engine_cs *ring,
        iowrite32(data, ringbuf->virtual_start + ringbuf->tail);
        ringbuf->tail += 4;
 }
+static inline void intel_ring_emit_reg(struct intel_engine_cs *ring,
+                                      i915_reg_t reg)
+{
+       intel_ring_emit(ring, i915_mmio_reg_offset(reg));
+}
 static inline void intel_ring_advance(struct intel_engine_cs *ring)
 {
        struct intel_ringbuffer *ringbuf = ring->buffer;