]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/gpu/drm/i915/intel_ringbuffer.c
drm/i915: Inline ringbuffer_emit()
[net-next-2.6.git] / drivers / gpu / drm / i915 / intel_ringbuffer.c
index 26362f8495a8791ed8d0d75657faa4b6c1af346e..a5d664e0b176efe75c668fcb8ee7ade62a008c41 100644 (file)
@@ -682,9 +682,11 @@ int intel_wrap_ring_buffer(struct drm_device *dev,
        }
 
        virt = (unsigned int *)(ring->virtual_start + ring->tail);
-       rem /= 4;
-       while (rem--)
+       rem /= 8;
+       while (rem--) {
                *virt++ = MI_NOOP;
+               *virt++ = MI_NOOP;
+       }
 
        ring->tail = 0;
        ring->space = ring->head - 8;
@@ -729,21 +731,14 @@ void intel_ring_begin(struct drm_device *dev,
                intel_wrap_ring_buffer(dev, ring);
        if (unlikely(ring->space < n))
                intel_wait_ring_buffer(dev, ring, n);
-}
 
-void intel_ring_emit(struct drm_device *dev,
-               struct intel_ring_buffer *ring, unsigned int data)
-{
-       unsigned int *virt = ring->virtual_start + ring->tail;
-       *virt = data;
-       ring->tail += 4;
-       ring->tail &= ring->size - 1;
-       ring->space -= 4;
+       ring->space -= n;
 }
 
 void intel_ring_advance(struct drm_device *dev,
                struct intel_ring_buffer *ring)
 {
+       ring->tail &= ring->size - 1;
        ring->advance_ring(dev, ring);
 }