Patch "drm/i915: Dont enable CS_PARSER_ERROR interrupts at all" has been added to the 4.0-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
drm/i915: Dont enable CS_PARSER_ERROR interrupts at all
to the 4.0-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-i915-dont-enable-cs_parser_error-interrupts-at-all.patch
and it can be found in the queue-4.0 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
37ef01ab5d24d1d520dc79f6a98099d451c2a901Mon Sep 17 00:00:00 2001
From: Daniel Vetter <[email protected]>
Date: Wed, 1 Apr 2015 13:43:46 +0200
Subject: drm/i915: Dont enable CS_PARSER_ERROR interrupts at all
From: Daniel Vetter <[email protected]>
commit 37ef01ab5d24d1d520dc79f6a98099d451c2a901 upstream.
We stopped handling them in
commit aaecdf611a05cac26a94713bad25297e60225c29
Author: Daniel Vetter <[email protected]> Date: Tue Nov 4 15:52:22 2014 +0100
drm/i915: Stop gathering error states for CS error interrupts
but just clearing is apparently not enough: A sufficiently dead gpu left behind by firmware (*cough* coreboot *cough*) can keep the gpu in an endless loop of such interrupts, eventually leading to the nmi firing. And definitely to what looks like a machine hang.
Since we don't even enable these interrupts on gen5+ let's do the same on earlier platforms.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=93171
--- drivers/gpu/drm/i915/i915_irq.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
drivers/gpu/drm/i915/i915_irq.c +2 -6
@@ -3718,14 +3718,12 @@ static int i8xx_irq_postinstall(struct d ~(I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT | -I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT | -I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT ); +I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT );I915_WRITE16 (IMR , dev_priv->irq_mask);I915_WRITE16 (IER ,I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |I915_DISPLAY_PIPE_B_EVENT_INTERRUPT | -I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT |I915_USER_INTERRUPT );POSTING_READ16 (IER );
@@ -3887,14 +3885,12 @@ static int i915_irq_postinstall(struct dI915_DISPLAY_PIPE_A_EVENT_INTERRUPT |I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT | -I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT | - I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT); + I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT); enable_mask =I915_ASLE_INTERRUPT |I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |I915_DISPLAY_PIPE_B_EVENT_INTERRUPT | -I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT |I915_USER_INTERRUPT ;if (I915_HAS_HOTPLUG (dev)) {
Patches currently in stable-queue which might be from [email protected] are
queue-4.0/drm-i915-dont-enable-cs_parser_error-interrupts-at-all.patch