drm/i915: Drop the iomem accessors when writing to the kmapped blt batch
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 2 Nov 2010 11:17:23 +0000 (11:17 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 2 Nov 2010 11:17:23 +0000 (11:17 +0000)
I presumed that we would be writing to the batch through the GTT having
bound it, so I converted it to use iomem. Even later as I spotted that
we didn't even move the batch to the GTT (now an issue since we default
to uncached memory on SNB) I still didn't realise that using iomem for
kmapped memory was incorrect. Fix it.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/intel_ringbuffer.c

index a0702b6..8507157 100644 (file)
@@ -899,7 +899,7 @@ static int blt_ring_init(struct intel_ring_buffer *ring)
 {
        if (NEED_BLT_WORKAROUND(ring->dev)) {
                struct drm_i915_gem_object *obj;
-               u32 __iomem *ptr;
+               u32 *ptr;
                int ret;
 
                obj = to_intel_bo(i915_gem_alloc_object(ring->dev, 4096));
@@ -913,8 +913,8 @@ static int blt_ring_init(struct intel_ring_buffer *ring)
                }
 
                ptr = kmap(obj->pages[0]);
-               iowrite32(MI_BATCH_BUFFER_END, ptr);
-               iowrite32(MI_NOOP, ptr+1);
+               *ptr++ = MI_BATCH_BUFFER_END;
+               *ptr++ = MI_NOOP;
                kunmap(obj->pages[0]);
 
                ret = i915_gem_object_set_to_gtt_domain(&obj->base, false);