Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2016-08-26 11:16:09 +0200
committerTakashi Iwai <tiwai@suse.de>2016-08-26 12:27:11 +0200
commit1d8614b3ce346c8b8e076f6f2d5e90145dfde41c (patch)
tree8ed281f3411f79a4a75b1f57791719cfec272fd9
parentfde8f20861eee21f3b01d7c8dc53c4c2641f69fa (diff)
Update patches.fixes/drm-i915-Fix-S4-resume-breakage
(bsc#984629,bsc#984632). Use the method suggested by the upstream dev.
-rw-r--r--patches.fixes/drm-i915-Fix-S4-resume-breakage33
1 files changed, 16 insertions, 17 deletions
diff --git a/patches.fixes/drm-i915-Fix-S4-resume-breakage b/patches.fixes/drm-i915-Fix-S4-resume-breakage
index e9801cfe15..75d845461c 100644
--- a/patches.fixes/drm-i915-Fix-S4-resume-breakage
+++ b/patches.fixes/drm-i915-Fix-S4-resume-breakage
@@ -1,6 +1,6 @@
From: Takashi Iwai <tiwai@suse.de>
Subject: drm/i915: Fix S4 resume breakage
-Patch-mainline: Never, a tentative fix
+Patch-mainline: Submitted, suggested on ML
References: bsc#984629,bsc#984632
We've seen S4 resume breakage on many Intel machines with SP2 kernel,
@@ -10,25 +10,24 @@ the bisection, it was pointed to be a side-effect of the commit:
4c436d55b279bbc6b02aac02e7dc683fc09f884e
drm/i915: Enable Resource Streamer state save/restore on MI_SET_CONTEXT
-This patch does the partial revert of the commit above to fix the S4
-resume crash.
+This patch fixes the regression by forcibly calling the GPU reset
+at prerequiste of PM S4 restore, as was suggested by the i915
+upstream dev.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
- drivers/gpu/drm/i915/i915_gem_context.c | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
+ drivers/gpu/drm/i915/i915_drv.c | 2 ++
+ 1 file changed, 2 insertions(+)
---- a/drivers/gpu/drm/i915/i915_gem_context.c
-+++ b/drivers/gpu/drm/i915/i915_gem_context.c
-@@ -533,9 +533,7 @@ mi_set_context(struct drm_i915_gem_reque
- }
-
- /* These flags are for resource streamer on HSW+ */
-- if (IS_HASWELL(ring->dev) || INTEL_INFO(ring->dev)->gen >= 8)
-- flags |= (HSW_MI_RS_SAVE_STATE_EN | HSW_MI_RS_RESTORE_STATE_EN);
-- else if (INTEL_INFO(ring->dev)->gen < 8)
-+ if (!IS_HASWELL(ring->dev) && INTEL_INFO(ring->dev)->gen < 8)
- flags |= (MI_SAVE_EXT_STATE_EN | MI_RESTORE_EXT_STATE_EN);
-
+--- a/drivers/gpu/drm/i915/i915_drv.c
++++ b/drivers/gpu/drm/i915/i915_drv.c
+@@ -1138,6 +1138,8 @@ static int i915_pm_thaw(struct device *d
+ /* restore: called after loading the hibernation image. */
+ static int i915_pm_restore_early(struct device *dev)
+ {
++ /* for avoiding the memory corruption at S4 resume (bsc#984624) */
++ intel_gpu_reset(dev_to_i915(dev)->dev);
+ return i915_pm_resume_early(dev);
+ }