drm/i915/selftests: Teach switch_to_context() to use the context
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 22 Oct 2019 13:02:21 +0000 (14:02 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 22 Oct 2019 19:43:08 +0000 (20:43 +0100)
The context details which engines to use, so use the ctx->engines[] to
generate the requests to cause the context switch.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191022130221.20644-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/selftests/i915_gem.c

index 97f89f7..84e7ca7 100644 (file)
 #include "igt_flush_test.h"
 #include "mock_drm.h"
 
-static int switch_to_context(struct drm_i915_private *i915,
-                            struct i915_gem_context *ctx)
+static int switch_to_context(struct i915_gem_context *ctx)
 {
-       struct intel_engine_cs *engine;
-       enum intel_engine_id id;
+       struct i915_gem_engines_iter it;
+       struct intel_context *ce;
 
-       for_each_engine(engine, i915, id) {
+       for_each_gem_engine(ce, i915_gem_context_lock_engines(ctx), it) {
                struct i915_request *rq;
 
-               rq = igt_request_alloc(ctx, engine);
+               rq = intel_context_create_request(ce);
                if (IS_ERR(rq))
                        return PTR_ERR(rq);
 
@@ -140,7 +139,7 @@ static int igt_gem_suspend(void *arg)
        err = -ENOMEM;
        ctx = live_context(i915, file);
        if (!IS_ERR(ctx))
-               err = switch_to_context(i915, ctx);
+               err = switch_to_context(ctx);
        if (err)
                goto out;
 
@@ -155,7 +154,7 @@ static int igt_gem_suspend(void *arg)
 
        pm_resume(i915);
 
-       err = switch_to_context(i915, ctx);
+       err = switch_to_context(ctx);
 out:
        mock_file_free(i915, file);
        return err;
@@ -175,7 +174,7 @@ static int igt_gem_hibernate(void *arg)
        err = -ENOMEM;
        ctx = live_context(i915, file);
        if (!IS_ERR(ctx))
-               err = switch_to_context(i915, ctx);
+               err = switch_to_context(ctx);
        if (err)
                goto out;
 
@@ -190,7 +189,7 @@ static int igt_gem_hibernate(void *arg)
 
        pm_resume(i915);
 
-       err = switch_to_context(i915, ctx);
+       err = switch_to_context(ctx);
 out:
        mock_file_free(i915, file);
        return err;