[Intel-gfx] [PATCH] drm/i915/selftests: re-init the GT in live_gt_pm
Daniele Ceraolo Spurio
daniele.ceraolospurio at intel.com
Wed Nov 20 00:04:25 UTC 2019
When GuC is in use we need to make sure it is re-loaded before the call
to gt_resume, otherwise communication from the engines to the GuC will
not be processed, which blocks the engines from ctx switching and from
being reset.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112205
Cc: Andi Shyti <andi.shyti at intel.com>
Cc: Chris Wilson <chris at chris-wilson.co.uk>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
---
drivers/gpu/drm/i915/gt/selftest_gt_pm.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/gpu/drm/i915/gt/selftest_gt_pm.c b/drivers/gpu/drm/i915/gt/selftest_gt_pm.c
index d1752f15702a..0bb17c806dfc 100644
--- a/drivers/gpu/drm/i915/gt/selftest_gt_pm.c
+++ b/drivers/gpu/drm/i915/gt/selftest_gt_pm.c
@@ -11,8 +11,11 @@ static int live_gt_resume(void *arg)
{
struct intel_gt *gt = arg;
IGT_TIMEOUT(end_time);
+ intel_wakeref_t wakeref;
int err;
+ wakeref = intel_runtime_pm_get(gt->uncore->rpm);
+
/* Do several suspend/resume cycles to check we don't explode! */
do {
intel_gt_suspend_prepare(gt);
@@ -25,6 +28,10 @@ static int live_gt_resume(void *arg)
break;
}
+ err = intel_gt_init_hw(gt);
+ if (err)
+ break;
+
err = intel_gt_resume(gt);
if (err)
break;
@@ -44,6 +51,8 @@ static int live_gt_resume(void *arg)
}
} while (!__igt_timeout(end_time, NULL));
+ intel_runtime_pm_put(gt->uncore->rpm, wakeref);
+
return err;
}
--
2.23.0
More information about the Intel-gfx
mailing list