浏览代码

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>
Chris Wilson 14 年之前
父节点
当前提交
ec6a890dfe
共有 2 个文件被更改,包括 2 次插入0 次删除
  1. 1 0
      drivers/gpu/drm/i915/i915_irq.c
  2. 1 0
      drivers/gpu/drm/i915/i915_reg.h

+ 1 - 0
drivers/gpu/drm/i915/i915_irq.c

@@ -1749,6 +1749,7 @@ void ironlake_irq_preinstall(struct drm_device *dev)
 		 * happens.
 		 * happens.
 		 */
 		 */
 		I915_WRITE(GEN6_BLITTER_HWSTAM, ~GEN6_BLITTER_USER_INTERRUPT);
 		I915_WRITE(GEN6_BLITTER_HWSTAM, ~GEN6_BLITTER_USER_INTERRUPT);
+		I915_WRITE(GEN6_BSD_HWSTAM, ~GEN6_BSD_USER_INTERRUPT);
 	}
 	}
 
 
 	/* XXX hotplug from PCH */
 	/* XXX hotplug from PCH */

+ 1 - 0
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_RC_ILDL_MESSAGE_ENABLE		0
 #define   GEN6_BSD_SLEEP_PSMI_CONTROL_IDLE_INDICATOR			(1 << 3)
 #define   GEN6_BSD_SLEEP_PSMI_CONTROL_IDLE_INDICATOR			(1 << 3)
 
 
+#define GEN6_BSD_HWSTAM			0x12098
 #define GEN6_BSD_IMR			0x120a8
 #define GEN6_BSD_IMR			0x120a8
 #define   GEN6_BSD_USER_INTERRUPT	(1 << 12)
 #define   GEN6_BSD_USER_INTERRUPT	(1 << 12)