Blob Blame History Raw
From 7469c62cb6549cf72bfd4d63cb3fc5f34eb0b2d0 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 14 Nov 2017 13:03:00 +0000
Subject: [PATCH] drm/i915: Resume GuC before using GEM
Git-commit: 7469c62cb6549cf72bfd4d63cb3fc5f34eb0b2d0
Patch-mainline: v4.16-rc1
References: FATE#322643 bsc#1055900

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: 37cd33006d02 ("drm/i915: Remove redundant intel_autoenable_gt_powersave()")
References: a1c419941453 ("drm/i915/guc: Add host2guc notification for suspend and resume")
Signed-off-by: Chris 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.uk
Reviewed-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Acked-by: Takashi Iwai <tiwai@suse.de>

---
 drivers/gpu/drm/i915/i915_drv.c |    2 --
 drivers/gpu/drm/i915/i915_gem.c |    2 ++
 2 files changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1708,8 +1708,6 @@ static int i915_drm_resume(struct drm_de
 
 	i915_gem_resume(dev_priv);
 
-	intel_guc_resume(dev_priv);
-
 	intel_modeset_init_hw(dev);
 	intel_init_clock_gating(dev_priv);
 
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4847,6 +4847,8 @@ void i915_gem_resume(struct drm_i915_pri
 	if (i915_gem_init_hw(i915))
 		goto err_wedged;
 
+	intel_guc_resume(i915);
+
 	/* Always reload a context for powersaving. */
 	if (i915_gem_switch_to_kernel_context(i915))
 		goto err_wedged;