[PATCH 10/10] fx
Chris Wilson
chris at chris-wilson.co.uk
Sat Nov 4 09:40:52 UTC 2017
---
drivers/gpu/drm/i915/i915_drv.c | 9 +--------
drivers/gpu/drm/i915/i915_gem.c | 15 +++++++++++++--
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index ba54bf1e806f..c53989f2a1f2 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1692,8 +1692,6 @@ static int i915_drm_resume(struct drm_device *dev)
intel_csr_ucode_resume(dev_priv);
- i915_gem_resume(dev_priv);
-
i915_restore_state(dev_priv);
intel_pps_unlock_regs_wa(dev_priv);
intel_opregion_setup(dev_priv);
@@ -1714,12 +1712,7 @@ static int i915_drm_resume(struct drm_device *dev)
drm_mode_config_reset(dev);
- mutex_lock(&dev->struct_mutex);
- if (i915_gem_init_hw(dev_priv)) {
- DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
- i915_gem_set_wedged(dev_priv);
- }
- mutex_unlock(&dev->struct_mutex);
+ i915_gem_resume(dev_priv);
intel_guc_resume(dev_priv);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index b7fafcf8d7a6..1982d49ad704 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4795,9 +4795,10 @@ int i915_gem_suspend(struct drm_i915_private *dev_priv)
void i915_gem_resume(struct drm_i915_private *i915)
{
+ mutex_lock(&i915->drm.struct_mutex);
+
WARN_ON(i915->gt.awake);
- mutex_lock(&i915->drm.struct_mutex);
i915_gem_restore_gtt_mappings(i915);
i915_gem_restore_fences(i915);
@@ -4807,10 +4808,20 @@ void i915_gem_resume(struct drm_i915_private *i915)
*/
i915->gt.resume(i915);
+ if (i915_gem_init_hw(i915))
+ goto err_wedged;
+
/* Always reload a context for powersaving. */
- i915_gem_switch_to_kernel_context(i915);
+ if (i915_gem_switch_to_kernel_context(i915))
+ goto err_wedged;
mutex_unlock(&i915->drm.struct_mutex);
+
+ return;
+
+err_wedged:
+ DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
+ i915_gem_set_wedged(i915);
}
void i915_gem_init_swizzling(struct drm_i915_private *dev_priv)
--
2.15.0
More information about the Intel-gfx-trybot
mailing list