Another fix for Sandybridge stalls

This commit is contained in:
Chuck Ebbert 2011-06-25 10:33:52 -04:00
parent 198deb8acf
commit 0dd8943dd9
2 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,43 @@
From: Chris Wilson <chris@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@web.de
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38529
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@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)

View File

@ -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@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@redhat.com>
- Minor cleanup: use upstream patch to export block_{get,put}_queue