Allow us to validate mocs configurations after reset if we have either
engine or global reset.

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuopp...@linux.intel.com>
---
 drivers/gpu/drm/i915/gt/selftest_mocs.c | 40 +++++++++++++------------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/selftest_mocs.c 
b/drivers/gpu/drm/i915/gt/selftest_mocs.c
index b25eba50c88e..21dcd91cbd62 100644
--- a/drivers/gpu/drm/i915/gt/selftest_mocs.c
+++ b/drivers/gpu/drm/i915/gt/selftest_mocs.c
@@ -361,29 +361,34 @@ static int active_engine_reset(struct intel_context *ce,
 static int __live_mocs_reset(struct live_mocs *mocs,
                             struct intel_context *ce)
 {
+       struct intel_gt *gt = ce->engine->gt;
        int err;
 
-       err = intel_engine_reset(ce->engine, "mocs");
-       if (err)
-               return err;
+       if (intel_has_reset_engine(gt)) {
+               err = intel_engine_reset(ce->engine, "mocs");
+               if (err)
+                       return err;
 
-       err = check_mocs_engine(mocs, ce);
-       if (err)
-               return err;
+               err = check_mocs_engine(mocs, ce);
+               if (err)
+                       return err;
 
-       err = active_engine_reset(ce, "mocs");
-       if (err)
-               return err;
+               err = active_engine_reset(ce, "mocs");
+               if (err)
+                       return err;
 
-       err = check_mocs_engine(mocs, ce);
-       if (err)
-               return err;
+               err = check_mocs_engine(mocs, ce);
+               if (err)
+                       return err;
+       }
 
-       intel_gt_reset(ce->engine->gt, ce->engine->mask, "mocs");
+       if (intel_has_gpu_reset(gt)) {
+               intel_gt_reset(gt, ce->engine->mask, "mocs");
 
-       err = check_mocs_engine(mocs, ce);
-       if (err)
-               return err;
+               err = check_mocs_engine(mocs, ce);
+               if (err)
+                       return err;
+       }
 
        return 0;
 }
@@ -398,9 +403,6 @@ static int live_mocs_reset(void *arg)
 
        /* Check the mocs setup is retained over per-engine and global resets */
 
-       if (!intel_has_reset_engine(gt))
-               return 0;
-
        err = live_mocs_init(&mocs, gt);
        if (err)
                return err;
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to