Commit 7469c62c authored by Chris Wilson's avatar Chris Wilson

drm/i915: Resume GuC before using GEM

Resuming GEM presumes it can talk to hw, in particular to ensure the
kernel context is loaded upon resume for powersaving. If the GuC is
still asleep at this point, we upset the HW. Rearrange the resume such
that we restore the original order of init-hw, resume-guc, use-gem.

Fixes: 37cd3300 ("drm/i915: Remove redundant intel_autoenable_gt_powersave()")
References: a1c41994 ("drm/i915/guc: Add host2guc notification for suspend and resume")
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Alex Dai <yu.dai@intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171114130300.25677-2-chris@chris-wilson.co.ukReviewed-by: default avatarSagar Arun Kamble <sagar.a.kamble@intel.com>
parent df49ec82
...@@ -1708,8 +1708,6 @@ static int i915_drm_resume(struct drm_device *dev) ...@@ -1708,8 +1708,6 @@ static int i915_drm_resume(struct drm_device *dev)
i915_gem_resume(dev_priv); i915_gem_resume(dev_priv);
intel_guc_resume(dev_priv);
intel_modeset_init_hw(dev); intel_modeset_init_hw(dev);
spin_lock_irq(&dev_priv->irq_lock); spin_lock_irq(&dev_priv->irq_lock);
......
...@@ -4852,6 +4852,8 @@ void i915_gem_resume(struct drm_i915_private *i915) ...@@ -4852,6 +4852,8 @@ void i915_gem_resume(struct drm_i915_private *i915)
if (i915_gem_init_hw(i915)) if (i915_gem_init_hw(i915))
goto err_wedged; goto err_wedged;
intel_guc_resume(i915);
/* Always reload a context for powersaving. */ /* Always reload a context for powersaving. */
if (i915_gem_switch_to_kernel_context(i915)) if (i915_gem_switch_to_kernel_context(i915))
goto err_wedged; goto err_wedged;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment