Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2013-03-11 13:33:43 +0100
committerTakashi Iwai <tiwai@suse.de>2013-03-11 14:17:13 +0100
commitebfbcf4c6515b0612a629dbadbf6474d44a795f4 (patch)
treee3537a9e5695769afb02a64526388d9fd7778989
parentb048bf538c38da38edcfd99fda0a8116a9614394 (diff)
drm/i915: enable irqs earlier when resuming (bnc#806406).
-rw-r--r--patches.drm/3264-drm-i915-enable-irqs-earlier-when-resuming87
-rw-r--r--series.conf1
2 files changed, 88 insertions, 0 deletions
diff --git a/patches.drm/3264-drm-i915-enable-irqs-earlier-when-resuming b/patches.drm/3264-drm-i915-enable-irqs-earlier-when-resuming
new file mode 100644
index 0000000000..820d283bb3
--- /dev/null
+++ b/patches.drm/3264-drm-i915-enable-irqs-earlier-when-resuming
@@ -0,0 +1,87 @@
+From 15239099d7a7a9ecdc1ccb5b187ae4cda5488ff9 Mon Sep 17 00:00:00 2001
+From: Daniel Vetter <daniel.vetter@ffwll.ch>
+Date: Tue, 5 Mar 2013 09:50:58 +0100
+Subject: [PATCH] drm/i915: enable irqs earlier when resuming
+Git-commit: 15239099d7a7a9ecdc1ccb5b187ae4cda5488ff9
+Patch-mainline: 3.9-rc2
+References: bnc#806406
+
+We need it to restore the ilk rc6 context, since the gpu wait no
+requires interrupts. But in general having interrupts around should
+help in code sanity, since more and more stuff is interrupt driven.
+
+This regression has been introduced in
+
+commit 3e9605018ab3e333d51cc90fccfde2031886763b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 27 16:22:54 2012 +0000
+
+ drm/i915: Rearrange code to only have a single method for waiting upon the ring
+
+Like in the driver load code we need to make sure that hotplug
+interrupts don't cause havoc with our modeset state, hence block them
+with the existing infrastructure. Again we ignore races where we might
+loose hotplug interrupts ...
+
+Note that the driver load part of the regression has already been
+fixed in
+
+commit 52d7ecedac3f96fb562cb482c139015372728638
+Author: Daniel Vetter <daniel.vetter@ffwll.ch>
+Date: Sat Dec 1 21:03:22 2012 +0100
+
+ drm/i915: reorder setup sequence to have irqs for output setup
+
+V2: Add a note to the commit message about which patch fixed the
+driver load part of the regression. Stable kernels need to backport
+both patches.
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=54691
+Cc: stable@vger.kernel.org (for 3.8 only, plese backport 52d7ecedac3f96fb5 first)
+Cc: Chris Wilson <chris@chris-wilson.co.uk>
+Cc: Mika Kuoppala <mika.kuoppala@intel.com>
+Reported-and-tested-by: Ilya Tumaykin <itumaykin@gmail.com>
+Reviewed-by: Chris wilson <chris@chris-wilson.co.uk> (v1)
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/i915/i915_drv.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/i915/i915_drv.c
++++ b/drivers/gpu/drm/i915/i915_drv.c
+@@ -487,6 +487,7 @@ static int i915_drm_freeze(struct drm_de
+ intel_modeset_disable(dev);
+
+ drm_irq_uninstall(dev);
++ dev_priv->enable_hotplug_processing = false;
+ }
+
+ i915_save_state(dev);
+@@ -563,6 +564,9 @@ static int __i915_drm_thaw(struct drm_de
+ error = i915_gem_init_hw(dev);
+ mutex_unlock(&dev->struct_mutex);
+
++ /* We need working interrupts for modeset enabling ... */
++ drm_irq_install(dev);
++
+ intel_modeset_init_hw(dev);
+ intel_modeset_setup_hw_state(dev, false);
+
+@@ -571,8 +575,14 @@ static int __i915_drm_thaw(struct drm_de
+ drm_helper_resume_force_mode(dev);
+ mutex_unlock(&dev->mode_config.mutex);
+
+- drm_irq_install(dev);
++ /*
++ * ... but also need to make sure that hotplug processing
++ * doesn't cause havoc. Like in the driver load code we don't
++ * bother with the tiny race here where we might loose hotplug
++ * notifications.
++ * */
+ intel_hpd_init(dev);
++ dev_priv->enable_hotplug_processing = true;
+ }
+
+ intel_opregion_init(dev);
diff --git a/series.conf b/series.conf
index ab2e3c5ced..092f3e828d 100644
--- a/series.conf
+++ b/series.conf
@@ -7083,6 +7083,7 @@
patches.drm/3261-drm-i915-Fix-incorrect-definition-of-ADPA-HSYNC-and-
patches.drm/3262-drm-i915-Turn-off-hsync-and-vsync-on-ADPA-when-disab
patches.drm/3263-drm-i915-Fixup-hpd-irq-register-setup-ordering
+ patches.drm/3264-drm-i915-enable-irqs-earlier-when-resuming
patches.drm/drm-cirrus-Correct-register-values-for-16bpp
patches.drm/drm-cirrus-Use-16bpp-as-default