[kernel/f15] Another fix for Sandybridge stalls

Chuck Ebbert cebbert at fedoraproject.org
Sat Jun 25 14:33:22 UTC 2011


commit 0dd8943dd9b88ace501d878c4b45d8da56fd9048
Author: Chuck Ebbert <cebbert at redhat.com>
Date:   Sat Jun 25 10:33:52 2011 -0400

    Another fix for Sandybridge stalls

 ...am-workaround-for-bsd-ring-on-sandybridge.patch |   43 ++++++++++++++++++++
 kernel.spec                                        |    4 ++
 2 files changed, 47 insertions(+), 0 deletions(-)
---
diff --git a/drm-i915-apply-hwstam-workaround-for-bsd-ring-on-sandybridge.patch b/drm-i915-apply-hwstam-workaround-for-bsd-ring-on-sandybridge.patch
new file mode 100644
index 0000000..06a8650
--- /dev/null
+++ b/drm-i915-apply-hwstam-workaround-for-bsd-ring-on-sandybridge.patch
@@ -0,0 +1,43 @@
+From: Chris Wilson <chris at chris-wilson.co.uk>
+Date: Tue, 21 Jun 2011 17:37:59 +0000 (+0100)
+Subject: drm/i915: Apply HWSTAM workaround for BSD ring on SandyBridge
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=ec6a890dfed7dd245beba5e5bcdfcffbd934c284
+
+drm/i915: Apply HWSTAM workaround for BSD ring on SandyBridge
+
+...we need to apply exactly the same workaround for missing interrupts
+from BSD as for the BLT ring, apparently.
+
+See also commit 498e720b96379d8ee9c294950a01534a73defcf3
+(drm/i915: Fix gen6 (SNB) missed BLT ring interrupts).
+
+Reported-and-tested-by: nkalkhof at web.de
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38529
+Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+---
+
+diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
+index 9e34a1a..ae2b499 100644
+--- a/drivers/gpu/drm/i915/i915_irq.c
++++ b/drivers/gpu/drm/i915/i915_irq.c
+@@ -1749,6 +1749,7 @@ void ironlake_irq_preinstall(struct drm_device *dev)
+ 		 * happens.
+ 		 */
+ 		I915_WRITE(GEN6_BLITTER_HWSTAM, ~GEN6_BLITTER_USER_INTERRUPT);
++		I915_WRITE(GEN6_BSD_HWSTAM, ~GEN6_BSD_USER_INTERRUPT);
+ 	}
+ 
+ 	/* XXX hotplug from PCH */
+diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
+index 2f967af..5d5def7 100644
+--- a/drivers/gpu/drm/i915/i915_reg.h
++++ b/drivers/gpu/drm/i915/i915_reg.h
+@@ -531,6 +531,7 @@
+ #define   GEN6_BSD_SLEEP_PSMI_CONTROL_RC_ILDL_MESSAGE_ENABLE		0
+ #define   GEN6_BSD_SLEEP_PSMI_CONTROL_IDLE_INDICATOR			(1 << 3)
+ 
++#define GEN6_BSD_HWSTAM			0x12098
+ #define GEN6_BSD_IMR			0x120a8
+ #define   GEN6_BSD_USER_INTERRUPT	(1 << 12)
+ 
diff --git a/kernel.spec b/kernel.spec
index 4303c62..bf9bfd4 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -700,6 +700,7 @@ Patch1826: drm-intel-edp-fixes.patch
 Patch1828: drm-intel-eeebox-eb1007-quirk.patch
 Patch1829: drm-intel-restore-mode.patch
 Patch1830: drm-i915-snb-irq-stalls-fix.patch
+Patch1831: drm-i915-apply-hwstam-workaround-for-bsd-ring-on-sandybridge.patch
 # radeon - new hw + fixes for fusion and t500 regression
 Patch1839: drm-radeon-fix-regression-on-atom-cards-with-hardcoded-EDID-record.patch
 Patch1840: drm-radeon-update.patch
@@ -1391,6 +1392,7 @@ ApplyPatch drm-i915-fix-pipelined-fencing.patch
 ApplyPatch drm-intel-eeebox-eb1007-quirk.patch
 ApplyPatch drm-intel-restore-mode.patch
 ApplyPatch drm-i915-snb-irq-stalls-fix.patch
+ApplyPatch drm-i915-apply-hwstam-workaround-for-bsd-ring-on-sandybridge.patch
 
 # radeon DRM (add cayman support)
 ApplyPatch drm-radeon-fix-regression-on-atom-cards-with-hardcoded-EDID-record.patch -R
@@ -2068,6 +2070,8 @@ fi
 %changelog
 * Sat Jun 25 2011 Chuck Ebbert <cebbert at redhat.com>
 - Intel IOMMU fixes from 2.6.39.2
+- drm-i915-apply-hwstam-workaround-for-bsd-ring-on-sandybridge.patch:
+  Another fix for Sandybridge stalls
 
 * Fri Jun 24 2011 Chuck Ebbert <cebbert at redhat.com>
 - Minor cleanup: use upstream patch to export block_{get,put}_queue


More information about the scm-commits mailing list