diff options
author | Tvrtko Ursulin <tvrtko.ursulin@intel.com> | 2022-09-15 16:26:53 -0700 |
---|---|---|
committer | Matt Roper <matthew.d.roper@intel.com> | 2022-09-16 07:57:20 -0700 |
commit | 4b3823ff7fa5bd000aa73384ec1f611980d00855 (patch) | |
tree | 93d10909bb609d49a77b596b000d56f4899fbc85 | |
parent | e23a40040819a7a3fcda3c6cedaeff80ad20c231 (diff) | |
download | linux-stable-4b3823ff7fa5bd000aa73384ec1f611980d00855.tar.gz linux-stable-4b3823ff7fa5bd000aa73384ec1f611980d00855.tar.bz2 linux-stable-4b3823ff7fa5bd000aa73384ec1f611980d00855.zip |
drm/i915: Make GEM suspend all GTs
Walk all GTs when suspending.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220915232654.3283095-4-matthew.d.roper@intel.com
-rw-r--r-- | drivers/gpu/drm/i915/gem/i915_gem_pm.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pm.c b/drivers/gpu/drm/i915/gem/i915_gem_pm.c index 2c80cc8362b6..e5bfb6be9f7a 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_pm.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_pm.c @@ -22,6 +22,9 @@ void i915_gem_suspend(struct drm_i915_private *i915) { + struct intel_gt *gt; + unsigned int i; + GEM_TRACE("%s\n", dev_name(i915->drm.dev)); intel_wakeref_auto(&to_gt(i915)->userfault_wakeref, 0); @@ -36,7 +39,8 @@ void i915_gem_suspend(struct drm_i915_private *i915) * state. Fortunately, the kernel_context is disposable and we do * not rely on its state. */ - intel_gt_suspend_prepare(to_gt(i915)); + for_each_gt(gt, i915, i) + intel_gt_suspend_prepare(gt); i915_gem_drain_freed_objects(i915); } @@ -131,7 +135,9 @@ void i915_gem_suspend_late(struct drm_i915_private *i915) &i915->mm.purge_list, NULL }, **phase; + struct intel_gt *gt; unsigned long flags; + unsigned int i; bool flush = false; /* @@ -154,7 +160,8 @@ void i915_gem_suspend_late(struct drm_i915_private *i915) * machine in an unusable condition. */ - intel_gt_suspend_late(to_gt(i915)); + for_each_gt(gt, i915, i) + intel_gt_suspend_late(gt); spin_lock_irqsave(&i915->mm.obj_lock, flags); for (phase = phases; *phase; phase++) { |