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
This commit is contained in:
parent
e23a400408
commit
4b3823ff7f
@ -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++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user