Skip to content

Commit

Permalink
drm/i915/selftest: Cope with not having an RCS engine
Browse files Browse the repository at this point in the history
It is no longer guaranteed that there will always be an RCS engine.
So, use the helper function for finding the first available engine that
can be used for general purpose selftets.

Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220728024225.2363663-5-John.C.Harrison@Intel.com
  • Loading branch information
John Harrison authored and John Harrison committed Jul 29, 2022
1 parent 69142c0 commit a96d8f0
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions drivers/gpu/drm/i915/gt/selftest_hangcheck.c
Original file line number Diff line number Diff line change
Expand Up @@ -1302,13 +1302,15 @@ static int igt_reset_wait(void *arg)
{
struct intel_gt *gt = arg;
struct i915_gpu_error *global = &gt->i915->gpu_error;
struct intel_engine_cs *engine = gt->engine[RCS0];
struct intel_engine_cs *engine;
struct i915_request *rq;
unsigned int reset_count;
struct hang h;
long timeout;
int err;

engine = intel_selftest_find_any_engine(gt);

if (!engine || !intel_engine_can_store_dword(engine))
return 0;

Expand Down Expand Up @@ -1432,7 +1434,7 @@ static int __igt_reset_evict_vma(struct intel_gt *gt,
int (*fn)(void *),
unsigned int flags)
{
struct intel_engine_cs *engine = gt->engine[RCS0];
struct intel_engine_cs *engine;
struct drm_i915_gem_object *obj;
struct task_struct *tsk = NULL;
struct i915_request *rq;
Expand All @@ -1444,6 +1446,8 @@ static int __igt_reset_evict_vma(struct intel_gt *gt,
if (!gt->ggtt->num_fences && flags & EXEC_OBJECT_NEEDS_FENCE)
return 0;

engine = intel_selftest_find_any_engine(gt);

if (!engine || !intel_engine_can_store_dword(engine))
return 0;

Expand Down Expand Up @@ -1819,12 +1823,14 @@ static int igt_handle_error(void *arg)
{
struct intel_gt *gt = arg;
struct i915_gpu_error *global = &gt->i915->gpu_error;
struct intel_engine_cs *engine = gt->engine[RCS0];
struct intel_engine_cs *engine;
struct hang h;
struct i915_request *rq;
struct i915_gpu_coredump *error;
int err;

engine = intel_selftest_find_any_engine(gt);

/* Check that we can issue a global GPU and engine reset */

if (!intel_has_reset_engine(gt))
Expand Down

0 comments on commit a96d8f0

Please sign in to comment.