drm/i915: Use safer intel_uncore_wait_for_register in ring-init
authorChris Wilson <[email protected]>
Tue, 11 Apr 2017 10:13:40 +0000 (11:13 +0100)
committerChris Wilson <[email protected]>
Tue, 11 Apr 2017 11:50:44 +0000 (12:50 +0100)
While we do hold the forcewake for legacy ringbuffer initialisation, we
don't guard our access with the uncore.lock spinlock. In theory, we only
initialise when no others should be accessing the same mmio cachelines,
but in practice be safe as this is an infrequently used path and not
worth risky micro-optimisations.

Signed-off-by: Chris Wilson <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
Reviewed-by: Tvrtko Ursulin <[email protected]>
drivers/gpu/drm/i915/intel_ringbuffer.c

index 331da59a1eb52da554750e666b880a5de5bb42f5..97d5fcca880569b5e6e88d37640b6bed48692002 100644 (file)
@@ -538,9 +538,9 @@ static int init_ring_common(struct intel_engine_cs *engine)
        I915_WRITE_CTL(engine, RING_CTL_SIZE(ring->size) | RING_VALID);
 
        /* If the head is still not zero, the ring is dead */
-       if (intel_wait_for_register_fw(dev_priv, RING_CTL(engine->mmio_base),
-                                      RING_VALID, RING_VALID,
-                                      50)) {
+       if (intel_wait_for_register(dev_priv, RING_CTL(engine->mmio_base),
+                                   RING_VALID, RING_VALID,
+                                   50)) {
                DRM_ERROR("%s initialization failed "
                          "ctl %08x (valid? %d) head %08x [%08x] tail %08x [%08x] start %08x [expected %08x]\n",
                          engine->name,