drm/i915: Store backpointer to intel_gt in the engine
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Fri, 21 Jun 2019 07:07:49 +0000 (08:07 +0100)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Fri, 21 Jun 2019 12:48:26 +0000 (13:48 +0100)
It will come useful in the next patch.

v2:
 * Do mock_engine as well.

v3:
 * And the virtual engine...

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20190621070811.7006-11-tvrtko.ursulin@linux.intel.com
drivers/gpu/drm/i915/gt/intel_engine_cs.c
drivers/gpu/drm/i915/gt/intel_engine_types.h
drivers/gpu/drm/i915/gt/intel_lrc.c
drivers/gpu/drm/i915/gt/mock_engine.c

index 5e4bf73..dd23fca 100644 (file)
@@ -316,6 +316,7 @@ intel_engine_setup(struct drm_i915_private *dev_priv,
        engine->id = id;
        engine->mask = BIT(id);
        engine->i915 = dev_priv;
+       engine->gt = &dev_priv->gt;
        engine->uncore = &dev_priv->uncore;
        __sprint_engine_name(engine->name, info);
        engine->hw_id = engine->guc_id = info->hw_id;
index 9940bad..fb65e96 100644 (file)
@@ -36,6 +36,7 @@ struct drm_i915_reg_table;
 struct i915_gem_context;
 struct i915_request;
 struct i915_sched_attr;
+struct intel_gt;
 struct intel_uncore;
 
 typedef u8 intel_engine_mask_t;
@@ -257,6 +258,7 @@ struct intel_engine_execlists {
 
 struct intel_engine_cs {
        struct drm_i915_private *i915;
+       struct intel_gt *gt;
        struct intel_uncore *uncore;
        char name[INTEL_ENGINE_CS_MAX_NAME];
 
index faa9a2e..e4b44b3 100644 (file)
@@ -3363,6 +3363,7 @@ intel_execlists_create_virtual(struct i915_gem_context *ctx,
                return ERR_PTR(-ENOMEM);
 
        ve->base.i915 = ctx->i915;
+       ve->base.gt = siblings[0]->gt;
        ve->base.id = -1;
        ve->base.class = OTHER_CLASS;
        ve->base.uabi_class = I915_ENGINE_CLASS_INVALID;
index 486c695..b022af3 100644 (file)
@@ -257,6 +257,7 @@ struct intel_engine_cs *mock_engine(struct drm_i915_private *i915,
 
        /* minimal engine setup for requests */
        engine->base.i915 = i915;
+       engine->base.gt = &i915->gt;
        snprintf(engine->base.name, sizeof(engine->base.name), "%s", name);
        engine->base.id = id;
        engine->base.mask = BIT(id);