Skip to contentSkip to conversation

i915: Fix gen6 (SNB) GPU stalling

PATCH In review Daniel J Blueman 2 participants 4 messages Jun 17, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 i915: Fix gen6 (SNB) GPU stalling

Workaround Sandy Bridge GPU stalls by allowing the blitter command streamer to write interrupt state to the Hardware Status Page when a MI_USER_INTERRUPT command is decoded.

v1->v2: Moved to prior interrupt handler installation and RMW flags as per feedback.

Eric, if you're happy, please sign-off and send to Dave for inclusion in -rc4 if possible. Further changes may be needed for -stable.

---
 drivers/gpu/drm/i915/i915_irq.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
drivers/gpu/drm/i915/i915_irq.c +7 -0
index b9fafe3..b7f11a5 100644
@@ -1741,6 +1741,13 @@ void ironlake_irq_preinstall(struct drm_device *dev)
 
 	I915_WRITE(HWSTAM, 0xeffe);
 
+	if (IS_GEN6(dev))
+		/* workaround stalls observed on Sandy Bridge GPUs by
+		   allowing the blitter command streamer to generate a
+		   write to the Hardware Status Page for MI_USER_INTERRUPT */
+		I915_WRITE(GEN6_BLITTER_HWSTAM, I915_READ(GEN6_BLITTER_HWSTAM)
+			& ~GEN6_BLITTER_USER_INTERRUPT);
+
 	/* XXX hotplug from PCH */
 
 	I915_WRITE(DEIMR, 0xffffffff);
Signature · 1 line
1.7.4.1
#1 lore raw
Quoted 6 lines · Daniel J Blueman

Workaround Sandy Bridge GPU stalls by allowing the blitter command streamer to write interrupt state to the Hardware Status Page when a MI_USER_INTERRUPT command is decoded.

v1->v2: Moved to prior interrupt handler installation and RMW flags as per feedback.

We shouldn't be RMWing. We're the driver, we're supposed to know what we want. I'm backing that bit out, will do another round of testing, and send it off.

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

#2 lore raw
Quoted 11 lines · Eric Anholt
Quoted 6 lines · Daniel J Blueman

Workaround Sandy Bridge GPU stalls by allowing the blitter command streamer to write interrupt state to the Hardware Status Page when a MI_USER_INTERRUPT command is decoded.

v1->v2: Moved to prior interrupt handler installation and RMW flags as per feedback.

We shouldn't be RMWing.  We're the driver, we're supposed to know what we want.  I'm backing that bit out, will do another round of testing, and send it off.

I still prefer directly setting the mask due to my earlier reasons. Unmasking in the IRQ preinstall tests good here, so I'll send a v3 patch in the morning.

Thanks,
Daniel

Signature · 1 line
Daniel J Blueman
#3 lore raw
Quoted 9 lines · Daniel J Blueman
Quoted 8 lines · Eric Anholt
Quoted 6 lines · Daniel J Blueman

Workaround Sandy Bridge GPU stalls by allowing the blitter command streamer to write interrupt state to the Hardware Status Page when a MI_USER_INTERRUPT command is decoded.

v1->v2: Moved to prior interrupt handler installation and RMW flags as per feedback.

Quoted 7 lines
Quoted 3 lines

We shouldn't be RMWing.  We're the driver, we're supposed to know what we want.  I'm backing that bit out, will do another round of testing, and send it off.

I still prefer directly setting the mask due to my earlier reasons. Unmasking in the IRQ preinstall tests good here, so I'll send a v3 patch in the morning.

Already tested and sent v3 out to lkml.

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx