drm/i915/execlists: Record elsp offset during engine setup
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 2 Jan 2018 15:12:33 +0000 (15:12 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 3 Jan 2018 11:01:38 +0000 (11:01 +0000)
Currently, we record the elsp register offset inside init-hw but we only
need to do it once during engine setup (after we know the mmio
iomapping).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: MichaƂ Winiarski <michal.winiarski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180102151235.3949-17-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_lrc.c

index 8f699a1..c23ffde 100644 (file)
@@ -1496,9 +1496,6 @@ static int gen8_init_common_ring(struct intel_engine_cs *engine)
        execlists->csb_head = -1;
        execlists->active = 0;
 
-       execlists->elsp =
-               dev_priv->regs + i915_mmio_reg_offset(RING_ELSP(engine));
-
        /* After a GPU reset, we may have requests to replay */
        if (execlists->first)
                tasklet_schedule(&execlists->tasklet);
@@ -2007,6 +2004,9 @@ static int logical_ring_init(struct intel_engine_cs *engine)
        if (ret)
                goto error;
 
+       engine->execlists.elsp =
+               engine->i915->regs + i915_mmio_reg_offset(RING_ELSP(engine));
+
        return 0;
 
 error: