Skip to content

Commit

Permalink
drm/i915/gt: Pull restoration of GGTT fences underneath the GT
Browse files Browse the repository at this point in the history
Make the GT responsible for restoring its fence when it wakes up from
suspend.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200316113846.4974-2-chris@chris-wilson.co.uk
  • Loading branch information
Chris Wilson committed Mar 16, 2020
1 parent f899f78 commit dec9cf9
Show file tree
Hide file tree
Showing 5 changed files with 3 additions and 7 deletions.
2 changes: 2 additions & 0 deletions drivers/gpu/drm/i915/gt/intel_ggtt.c
Original file line number Diff line number Diff line change
Expand Up @@ -1195,6 +1195,8 @@ void i915_ggtt_resume(struct i915_ggtt *ggtt)

if (INTEL_GEN(ggtt->vm.i915) >= 8)
setup_private_pat(ggtt->vm.gt->uncore);

intel_ggtt_restore_fences(ggtt);
}

static struct scatterlist *
Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/i915/gt/intel_gt_pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@ int intel_gt_runtime_resume(struct intel_gt *gt)
{
GT_TRACE(gt, "\n");
intel_gt_init_swizzling(gt);
intel_ggtt_restore_fences(gt->ggtt);

return intel_uc_runtime_resume(&gt->uc);
}
Expand Down
4 changes: 0 additions & 4 deletions drivers/gpu/drm/i915/i915_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -1288,7 +1288,6 @@ static int i915_drm_resume(struct drm_device *dev)
drm_err(&dev_priv->drm, "failed to re-enable GGTT\n");

i915_ggtt_resume(&dev_priv->ggtt);
intel_ggtt_restore_fences(&dev_priv->ggtt);

intel_csr_ucode_resume(dev_priv);

Expand Down Expand Up @@ -1606,8 +1605,6 @@ static int intel_runtime_suspend(struct device *kdev)

intel_gt_runtime_resume(&dev_priv->gt);

intel_ggtt_restore_fences(&dev_priv->ggtt);

enable_rpm_wakeref_asserts(rpm);

return ret;
Expand Down Expand Up @@ -1687,7 +1684,6 @@ static int intel_runtime_resume(struct device *kdev)
* we can do is to hope that things will still work (and disable RPM).
*/
intel_gt_runtime_resume(&dev_priv->gt);
intel_ggtt_restore_fences(&dev_priv->ggtt);

/*
* On VLV/CHV display interrupts are part of the display
Expand Down
1 change: 0 additions & 1 deletion drivers/gpu/drm/i915/i915_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -1156,7 +1156,6 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
/* Minimal basic recovery for KMS */
ret = i915_ggtt_enable_hw(dev_priv);
i915_ggtt_resume(&dev_priv->ggtt);
intel_ggtt_restore_fences(&dev_priv->ggtt);
intel_init_clock_gating(dev_priv);
}

Expand Down
2 changes: 0 additions & 2 deletions drivers/gpu/drm/i915/selftests/i915_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,6 @@ static void pm_resume(struct drm_i915_private *i915)
*/
with_intel_runtime_pm(&i915->runtime_pm, wakeref) {
i915_ggtt_resume(&i915->ggtt);
intel_ggtt_restore_fences(&i915->ggtt);

i915_gem_resume(i915);
}
}
Expand Down

0 comments on commit dec9cf9

Please sign in to comment.