From: Greg Kroah-Hartman Date: Mon, 18 Mar 2013 20:20:17 +0000 (-0700) Subject: 3.8-stable patches X-Git-Tag: v3.0.70~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=604e24c7783d3cb59debad615533989e1996ed30;p=thirdparty%2Fkernel%2Fstable-queue.git 3.8-stable patches added patches: revert-drm-i915-enable-irqs-earlier-when-resuming.patch revert-drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch --- 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 index 00000000000..94131ca00d5 --- /dev/null +++ b/queue-3.8/revert-drm-i915-enable-irqs-earlier-when-resuming.patch @@ -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 +From: Greg Kroah-Hartman +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 +Cc: Chris Wilson +Cc: Mika Kuoppala +Cc: Ilya Tumaykin +Cc: Chris wilson +Cc: Daniel Vetter + +--- + 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 index 00000000000..e37376bd9a9 --- /dev/null +++ b/queue-3.8/revert-drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch @@ -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 +From: Greg Kroah-Hartman +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 +Cc: Imre Deak +Cc: Daniel Vetter + +--- + 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"); + diff --git a/queue-3.8/series b/queue-3.8/series index 96941cee3d0..b69819cc838 100644 --- a/queue-3.8/series +++ b/queue-3.8/series @@ -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