]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: Drop final few uses of drm_i915_private.engine
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 25 Mar 2020 23:48:03 +0000 (23:48 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 26 Mar 2020 10:50:17 +0000 (10:50 +0000)
We've migrated all the heavy users over to the intel_gt, and can finally
drop the last few users and with that the mirror in dev_priv->engine[].

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Andi Shyti <andi.shyti@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200325234803.6175-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/display/intel_overlay.c
drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
drivers/gpu/drm/i915/gt/intel_engine_cs.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/selftests/i915_request.c
drivers/gpu/drm/i915/selftests/mock_gem_device.c

index 4811872231017d3ce5ade492f6e6e1ad57d85f2f..6e1d6632322317ed0175941a8bf75972b9330a27 100644 (file)
@@ -1342,7 +1342,7 @@ void intel_overlay_setup(struct drm_i915_private *dev_priv)
        if (!HAS_OVERLAY(dev_priv))
                return;
 
-       engine = dev_priv->engine[RCS0];
+       engine = dev_priv->gt.engine[RCS0];
        if (!engine || !engine->kernel_context)
                return;
 
index 54b86cf7f5d2ea1988a5435b345798ad3f47eeb6..f4f933240b395178f258e8c52adbc9ca4389dc9b 100644 (file)
@@ -1925,7 +1925,7 @@ static int mock_context_barrier(void *arg)
                goto out;
        }
 
-       rq = igt_request_alloc(ctx, i915->engine[RCS0]);
+       rq = igt_request_alloc(ctx, i915->gt.engine[RCS0]);
        if (IS_ERR(rq)) {
                pr_err("Request allocation failed!\n");
                goto out;
index 3aa8a652c16dbdd092dba754fad8df057d82ba5b..dff0bbe9e1a6dbd0d9ec9c07e3a28ca4e99061a0 100644 (file)
@@ -347,8 +347,6 @@ static int intel_engine_setup(struct intel_gt *gt, enum intel_engine_id id)
        gt->engine_class[info->class][info->instance] = engine;
        gt->engine[id] = engine;
 
-       i915->engine[id] = engine;
-
        return 0;
 }
 
@@ -425,8 +423,6 @@ void intel_engines_release(struct intel_gt *gt)
                engine->release = NULL;
 
                memset(&engine->reset, 0, sizeof(engine->reset));
-
-               gt->i915->engine[id] = NULL;
        }
 }
 
index 9bcea97c39de444fb43375a2d24f14690f0f5620..b09a1c929c94e9a6f3a9de46f78e8af69aea0111 100644 (file)
@@ -884,7 +884,6 @@ struct drm_i915_private {
 
        struct pci_dev *bridge_dev;
 
-       struct intel_engine_cs *engine[I915_NUM_ENGINES];
        struct rb_root uabi_engines;
 
        struct resource mch_res;
index ecf07b0faad2a712b96cbf5943a74f33ea955323..adb21112df78c45897ec36f7d025fff15985cc7d 100644 (file)
@@ -3648,7 +3648,7 @@ static irqreturn_t i8xx_irq_handler(int irq, void *arg)
                intel_uncore_write16(&dev_priv->uncore, GEN2_IIR, iir);
 
                if (iir & I915_USER_INTERRUPT)
-                       intel_engine_signal_breadcrumbs(dev_priv->engine[RCS0]);
+                       intel_engine_signal_breadcrumbs(dev_priv->gt.engine[RCS0]);
 
                if (iir & I915_MASTER_ERROR_INTERRUPT)
                        i8xx_error_irq_handler(dev_priv, eir, eir_stuck);
@@ -3753,7 +3753,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
                I915_WRITE(GEN2_IIR, iir);
 
                if (iir & I915_USER_INTERRUPT)
-                       intel_engine_signal_breadcrumbs(dev_priv->engine[RCS0]);
+                       intel_engine_signal_breadcrumbs(dev_priv->gt.engine[RCS0]);
 
                if (iir & I915_MASTER_ERROR_INTERRUPT)
                        i9xx_error_irq_handler(dev_priv, eir, eir_stuck);
@@ -3895,10 +3895,10 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
                I915_WRITE(GEN2_IIR, iir);
 
                if (iir & I915_USER_INTERRUPT)
-                       intel_engine_signal_breadcrumbs(dev_priv->engine[RCS0]);
+                       intel_engine_signal_breadcrumbs(dev_priv->gt.engine[RCS0]);
 
                if (iir & I915_BSD_USER_INTERRUPT)
-                       intel_engine_signal_breadcrumbs(dev_priv->engine[VCS0]);
+                       intel_engine_signal_breadcrumbs(dev_priv->gt.engine[VCS0]);
 
                if (iir & I915_MASTER_ERROR_INTERRUPT)
                        i9xx_error_irq_handler(dev_priv, eir, eir_stuck);
index 7ac9616de9d8f10b386b153839d8fb7296bfff43..1dab0360f76a471b76c4ed7ed8eb4536072c3afc 100644 (file)
@@ -28,6 +28,7 @@
 #include "gem/selftests/mock_context.h"
 
 #include "gt/intel_engine_pm.h"
+#include "gt/intel_engine_user.h"
 #include "gt/intel_gt.h"
 
 #include "i915_random.h"
@@ -51,6 +52,11 @@ static unsigned int num_uabi_engines(struct drm_i915_private *i915)
        return count;
 }
 
+static struct intel_engine_cs *rcs0(struct drm_i915_private *i915)
+{
+       return intel_engine_lookup_user(i915, I915_ENGINE_CLASS_RENDER, 0);
+}
+
 static int igt_add_request(void *arg)
 {
        struct drm_i915_private *i915 = arg;
@@ -58,7 +64,7 @@ static int igt_add_request(void *arg)
 
        /* Basic preliminary test to create a request and let it loose! */
 
-       request = mock_request(i915->engine[RCS0]->kernel_context, HZ / 10);
+       request = mock_request(rcs0(i915)->kernel_context, HZ / 10);
        if (!request)
                return -ENOMEM;
 
@@ -76,7 +82,7 @@ static int igt_wait_request(void *arg)
 
        /* Submit a request, then wait upon it */
 
-       request = mock_request(i915->engine[RCS0]->kernel_context, T);
+       request = mock_request(rcs0(i915)->kernel_context, T);
        if (!request)
                return -ENOMEM;
 
@@ -145,7 +151,7 @@ static int igt_fence_wait(void *arg)
 
        /* Submit a request, treat it as a fence and wait upon it */
 
-       request = mock_request(i915->engine[RCS0]->kernel_context, T);
+       request = mock_request(rcs0(i915)->kernel_context, T);
        if (!request)
                return -ENOMEM;
 
@@ -420,7 +426,7 @@ static int mock_breadcrumbs_smoketest(void *arg)
 {
        struct drm_i915_private *i915 = arg;
        struct smoketest t = {
-               .engine = i915->engine[RCS0],
+               .engine = rcs0(i915),
                .ncontexts = 1024,
                .max_batch = 1024,
                .request_alloc = __mock_request_alloc
index 754d0eb6beaae1e8decd2034b877b28c31a9f4a1..47fde54150f4cefe68ddd75d9d41342e9d7d4200 100644 (file)
@@ -178,11 +178,11 @@ struct drm_i915_private *mock_gem_device(void)
 
        mkwrite_device_info(i915)->engine_mask = BIT(0);
 
-       i915->engine[RCS0] = mock_engine(i915, "mock", RCS0);
-       if (!i915->engine[RCS0])
+       i915->gt.engine[RCS0] = mock_engine(i915, "mock", RCS0);
+       if (!i915->gt.engine[RCS0])
                goto err_unlock;
 
-       if (mock_engine_init(i915->engine[RCS0]))
+       if (mock_engine_init(i915->gt.engine[RCS0]))
                goto err_context;
 
        __clear_bit(I915_WEDGED, &i915->gt.reset.flags);