No good ideas here either, but would be nice to see if this makes a difference on ring init:
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 4024e16..708a1da 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -573,6 +573,15 @@ static int i915_drm_thaw_early(struct drm_device *dev) static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings) { struct drm_i915_private *dev_priv = dev->dev_private; + int ret; + + mutex_lock(&dev->struct_mutex); + ret = intel_gpu_reset(dev); + mutex_unlock(&dev->struct_mutex); + + if (ret) + DRM_ERROR("failed to reset the GPU on resume (%d), ignoring\n", + ret);
No good ideas here either, but would be nice to see if this makes a difference on
ring init:
diff --git a/drivers/ gpu/drm/ i915/i915_ drv.c b/drivers/ gpu/drm/ i915/i915_ drv.c gpu/drm/ i915/i915_ drv.c gpu/drm/ i915/i915_ drv.c thaw_early( struct drm_device *dev) drm_thaw( struct drm_device *dev, bool restore_ gtt_mappings) &dev->struct_ mutex); reset(dev) ; &dev->struct_ mutex);
index 4024e16..708a1da 100644
--- a/drivers/
+++ b/drivers/
@@ -573,6 +573,15 @@ static int i915_drm_
static int __i915_
{
struct drm_i915_private *dev_priv = dev->dev_private;
+ int ret;
+
+ mutex_lock(
+ ret = intel_gpu_
+ mutex_unlock(
+
+ if (ret)
+ DRM_ERROR("failed to reset the GPU on resume (%d), ignoring\n",
+ ret);