]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.8-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 18 Mar 2013 20:20:17 +0000 (13:20 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 18 Mar 2013 20:20:17 +0000 (13:20 -0700)
added patches:
revert-drm-i915-enable-irqs-earlier-when-resuming.patch
revert-drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch

queue-3.8/revert-drm-i915-enable-irqs-earlier-when-resuming.patch [new file with mode: 0644]
queue-3.8/revert-drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch [new file with mode: 0644]
queue-3.8/series

diff --git a/queue-3.8/revert-drm-i915-enable-irqs-earlier-when-resuming.patch b/queue-3.8/revert-drm-i915-enable-irqs-earlier-when-resuming.patch
new file mode 100644 (file)
index 0000000..94131ca
--- /dev/null
@@ -0,0 +1,53 @@
+From foo@baz Mon Mar 18 13:13:39 PDT 2013
+Date: Mon, 18 Mar 2013 13:13:39 -0700
+To: Greg KH <gregkh@linuxfoundation.org>
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Subject: Revert "drm/i915: enable irqs earlier when resuming"
+
+This reverts commit 31f14f4219d2a74b7a6d86c7798f49141b5eccbe which was
+commit 15239099d7a7a9ecdc1ccb5b187ae4cda5488ff9 upstream.
+
+It caused problems in the 3.8-stable series, but 3.9-rc is just fine.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: Chris Wilson <chris@chris-wilson.co.uk>
+Cc: Mika Kuoppala <mika.kuoppala@intel.com>
+Cc: Ilya Tumaykin <itumaykin@gmail.com>
+Cc: Chris wilson <chris@chris-wilson.co.uk> 
+Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
+
+---
+ drivers/gpu/drm/i915/i915_drv.c |   13 +------------
+ 1 file changed, 1 insertion(+), 12 deletions(-)
+
+--- a/drivers/gpu/drm/i915/i915_drv.c
++++ b/drivers/gpu/drm/i915/i915_drv.c
+@@ -486,7 +486,6 @@ 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,19 +562,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);
+-
+-              /*
+-               * ... 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.
+-               * */
+-              dev_priv->enable_hotplug_processing = true;
++              drm_irq_install(dev);
+       }
+       intel_opregion_init(dev);
diff --git a/queue-3.8/revert-drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch b/queue-3.8/revert-drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch
new file mode 100644 (file)
index 0000000..e37376b
--- /dev/null
@@ -0,0 +1,102 @@
+From foo@baz Mon Mar 18 13:16:44 PDT 2013
+Date: Mon, 18 Mar 2013 13:16:44 -0700
+To: Greg KH <gregkh@linuxfoundation.org>
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Subject: Revert "drm/i915: reorder setup sequence to have irqs for output setup"
+
+Revert commit 2a9810441fcc26cf3f006f015f8a62094fe57a90 which is
+commit 52d7ecedac3f96fb562cb482c139015372728638 upstream.
+
+This caused problems in 3.8-stable, but all is fine in 3.9-rc.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: Imre Deak <imre.deak@intel.com>
+Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
+
+---
+ drivers/gpu/drm/i915/i915_dma.c |   23 +++++++++--------------
+ drivers/gpu/drm/i915/i915_drv.h |    1 -
+ drivers/gpu/drm/i915/i915_irq.c |    4 ----
+ 3 files changed, 9 insertions(+), 19 deletions(-)
+
+--- a/drivers/gpu/drm/i915/i915_dma.c
++++ b/drivers/gpu/drm/i915/i915_dma.c
+@@ -1297,21 +1297,19 @@ static int i915_load_modeset_init(struct
+       if (ret)
+               goto cleanup_vga_switcheroo;
+-      ret = drm_irq_install(dev);
+-      if (ret)
+-              goto cleanup_gem_stolen;
+-
+-      /* Important: The output setup functions called by modeset_init need
+-       * working irqs for e.g. gmbus and dp aux transfers. */
+       intel_modeset_init(dev);
+       ret = i915_gem_init(dev);
+       if (ret)
+-              goto cleanup_irq;
++              goto cleanup_gem_stolen;
++
++      intel_modeset_gem_init(dev);
+       INIT_WORK(&dev_priv->console_resume_work, intel_console_resume);
+-      intel_modeset_gem_init(dev);
++      ret = drm_irq_install(dev);
++      if (ret)
++              goto cleanup_gem;
+       /* Always safe in the mode setting case. */
+       /* FIXME: do pre/post-mode set stuff in core KMS code */
+@@ -1319,10 +1317,7 @@ static int i915_load_modeset_init(struct
+       ret = intel_fbdev_init(dev);
+       if (ret)
+-              goto cleanup_gem;
+-
+-      /* Only enable hotplug handling once the fbdev is fully set up. */
+-      dev_priv->enable_hotplug_processing = true;
++              goto cleanup_irq;
+       drm_kms_helper_poll_init(dev);
+@@ -1331,13 +1326,13 @@ static int i915_load_modeset_init(struct
+       return 0;
++cleanup_irq:
++      drm_irq_uninstall(dev);
+ cleanup_gem:
+       mutex_lock(&dev->struct_mutex);
+       i915_gem_cleanup_ringbuffer(dev);
+       mutex_unlock(&dev->struct_mutex);
+       i915_gem_cleanup_aliasing_ppgtt(dev);
+-cleanup_irq:
+-      drm_irq_uninstall(dev);
+ cleanup_gem_stolen:
+       i915_gem_cleanup_stolen(dev);
+ cleanup_vga_switcheroo:
+--- a/drivers/gpu/drm/i915/i915_drv.h
++++ b/drivers/gpu/drm/i915/i915_drv.h
+@@ -672,7 +672,6 @@ typedef struct drm_i915_private {
+       u32 hotplug_supported_mask;
+       struct work_struct hotplug_work;
+-      bool enable_hotplug_processing;
+       int num_pipe;
+       int num_pch_pll;
+--- a/drivers/gpu/drm/i915/i915_irq.c
++++ b/drivers/gpu/drm/i915/i915_irq.c
+@@ -287,10 +287,6 @@ static void i915_hotplug_work_func(struc
+       struct drm_mode_config *mode_config = &dev->mode_config;
+       struct intel_encoder *encoder;
+-      /* HPD irq before everything is fully set up. */
+-      if (!dev_priv->enable_hotplug_processing)
+-              return;
+-
+       mutex_lock(&mode_config->mutex);
+       DRM_DEBUG_KMS("running encoder hotplug functions\n");
index 96941cee3d0586f06f708d3e737b540304168f36..b69819cc8381c68d03b3ddff2f9c421a57b3f63e 100644 (file)
@@ -71,3 +71,5 @@ bridge-fix-mdb-info-leaks.patch
 rtnl-fix-info-leak-on-rtm_getlink-request-for-vf-devices.patch
 dcbnl-fix-various-netlink-info-leaks.patch
 6lowpan-fix-endianness-issue-in-is_addr_link_local.patch
+revert-drm-i915-enable-irqs-earlier-when-resuming.patch
+revert-drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch