summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@lavabit.com>2013-03-22 13:26:03 -0300
committerAndré Fabian Silva Delgado <emulatorman@lavabit.com>2013-03-22 13:26:03 -0300
commit4be96e3f04b5396bab4cc334b2d28fc4a9113dfa (patch)
treee1ba4ac184c939acf1084ae5ad02b2404aa8475f
parent043a9a0dec2cf6257f499ffc10b5e7e9b5279aba (diff)
linux-libre-{pae,xen}: updating version
* Update 3.8.4 version * Remove unnecessaries patches
-rw-r--r--kernels/linux-libre-pae/PKGBUILD19
-rw-r--r--kernels/linux-libre-pae/drm-i915-enable-irqs-earlier-when-resuming.patch82
-rw-r--r--kernels/linux-libre-pae/drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch124
-rw-r--r--kernels/linux-libre-pae/linux-libre-pae.install2
-rw-r--r--kernels/linux-libre-xen/PKGBUILD21
-rw-r--r--kernels/linux-libre-xen/drm-i915-enable-irqs-earlier-when-resuming.patch82
-rw-r--r--kernels/linux-libre-xen/drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch124
-rw-r--r--kernels/linux-libre-xen/linux-libre-xen.install2
8 files changed, 13 insertions, 443 deletions
diff --git a/kernels/linux-libre-pae/PKGBUILD b/kernels/linux-libre-pae/PKGBUILD
index 5e937cbf8..348906170 100644
--- a/kernels/linux-libre-pae/PKGBUILD
+++ b/kernels/linux-libre-pae/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 180114 2013-03-17 13:00:07Z tpowa $
+# $Id: PKGBUILD 180406 2013-03-21 07:26:50Z tpowa $
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Baechler <thomas@archlinux.org>
# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
@@ -6,8 +6,8 @@
pkgbase=linux-libre-pae # Build stock -LIBRE-PAE kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.8
-pkgver=${_basekernel}.3
-pkgrel=2
+pkgver=${_basekernel}.4
+pkgrel=1
arch=('i686')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -20,17 +20,13 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
# standard config files for mkinitcpio ramdisk
"${pkgbase}.preset"
'boot-logo.patch'
- 'change-default-console-loglevel.patch'
- 'drm-i915-enable-irqs-earlier-when-resuming.patch'
- 'drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch')
+ 'change-default-console-loglevel.patch')
md5sums=('84c2a77910932ffc7d958744ac9cf2f5'
'a762b6f22a64473a0b4d8dc5366b25d3'
'5cc106ba38bab845ea62138fc0d1bbf1'
'f302c931bd85309da9d9792b4cc96467'
'04b21c79df0a952c22d681dd4f4562df'
- 'f3def2cefdcbb954c21d8505d23cc83c'
- '40e7b328977ad787a0b5584f193d63fe'
- '8b9159931fab0c191a86dbd5a46fa328')
+ 'f3def2cefdcbb954c21d8505d23cc83c')
_kernelname=${pkgbase#linux-libre}
_localversionname=-LIBRE-PAE
@@ -50,11 +46,6 @@ build() {
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
- # revert 2 patches which breaks displays
- # FS 34327
- patch -Rp1 -i "${srcdir}/drm-i915-enable-irqs-earlier-when-resuming.patch"
- patch -Rp1 -i "${srcdir}/drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch"
-
cat "${srcdir}/config" > ./.config # simpler
if [ "${_kernelname}" != "" ]; then
diff --git a/kernels/linux-libre-pae/drm-i915-enable-irqs-earlier-when-resuming.patch b/kernels/linux-libre-pae/drm-i915-enable-irqs-earlier-when-resuming.patch
deleted file mode 100644
index cb621d520..000000000
--- a/kernels/linux-libre-pae/drm-i915-enable-irqs-earlier-when-resuming.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-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: drm/i915: enable irqs earlier when resuming
-
-From: Daniel Vetter <daniel.vetter@ffwll.ch>
-
-commit 15239099d7a7a9ecdc1ccb5b187ae4cda5488ff9 upstream.
-
-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: 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>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/gpu/drm/i915/i915_drv.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
---- a/drivers/gpu/drm/i915/i915_drv.c
-+++ b/drivers/gpu/drm/i915/i915_drv.c
-@@ -486,6 +486,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);
-@@ -562,9 +563,19 @@ 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);
-- 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.
-+ * */
-+ dev_priv->enable_hotplug_processing = true;
- }
-
- intel_opregion_init(dev);
diff --git a/kernels/linux-libre-pae/drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch b/kernels/linux-libre-pae/drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch
deleted file mode 100644
index 8dc354488..000000000
--- a/kernels/linux-libre-pae/drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From 52d7ecedac3f96fb562cb482c139015372728638 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter@ffwll.ch>
-Date: Sat, 1 Dec 2012 21:03:22 +0100
-Subject: drm/i915: reorder setup sequence to have irqs for output setup
-
-From: Daniel Vetter <daniel.vetter@ffwll.ch>
-
-commit 52d7ecedac3f96fb562cb482c139015372728638 upstream.
-
-Otherwise the new&shiny irq-driven gmbus and dp aux code won't work that
-well. Noticed since the dp aux code doesn't have an automatic fallback
-with a timeout (since the hw provides for that already).
-
-v2: Simple move drm_irq_install before intel_modeset_gem_init, as
-suggested by Ben Widawsky.
-
-v3: Now that interrupts are enabled before all connectors are fully
-set up, we might fall over serving a HPD interrupt while things are
-still being set up. Instead of jumping through massive hoops and
-complicating the code with a separate hpd irq enable step, simply
-block out the hotplug work item from doing anything until things are
-in place.
-
-v4: Actually, we can enable hotplug processing only after the fbdev is
-fully set up, since we call down into the fbdev from the hotplug work
-functions. So stick the hpd enabling right next to the poll helper
-initialization.
-
-v5: We need to enable irqs before intel_modeset_init, since that
-function sets up the outputs.
-
-v6: Fixup cleanup sequence, too.
-
-Reviewed-by: Imre Deak <imre.deak@intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- 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, 19 insertions(+), 9 deletions(-)
-
---- a/drivers/gpu/drm/i915/i915_dma.c
-+++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -1297,19 +1297,21 @@ 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_gem_stolen;
--
-- intel_modeset_gem_init(dev);
-+ goto cleanup_irq;
-
- INIT_WORK(&dev_priv->console_resume_work, intel_console_resume);
-
-- ret = drm_irq_install(dev);
-- if (ret)
-- goto cleanup_gem;
-+ intel_modeset_gem_init(dev);
-
- /* Always safe in the mode setting case. */
- /* FIXME: do pre/post-mode set stuff in core KMS code */
-@@ -1317,7 +1319,10 @@ static int i915_load_modeset_init(struct
-
- ret = intel_fbdev_init(dev);
- if (ret)
-- goto cleanup_irq;
-+ goto cleanup_gem;
-+
-+ /* Only enable hotplug handling once the fbdev is fully set up. */
-+ dev_priv->enable_hotplug_processing = true;
-
- drm_kms_helper_poll_init(dev);
-
-@@ -1326,13 +1331,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,6 +672,7 @@ 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,6 +287,10 @@ 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/kernels/linux-libre-pae/linux-libre-pae.install b/kernels/linux-libre-pae/linux-libre-pae.install
index 7951e0156..5053eb190 100644
--- a/kernels/linux-libre-pae/linux-libre-pae.install
+++ b/kernels/linux-libre-pae/linux-libre-pae.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-pae
-KERNEL_VERSION=3.8.3-2-LIBRE-PAE
+KERNEL_VERSION=3.8.4-1-LIBRE-PAE
# set a sane PATH to ensure that critical utils like depmod will be found
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
diff --git a/kernels/linux-libre-xen/PKGBUILD b/kernels/linux-libre-xen/PKGBUILD
index 91dc1484c..77e0ed1ff 100644
--- a/kernels/linux-libre-xen/PKGBUILD
+++ b/kernels/linux-libre-xen/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 180114 2013-03-17 13:00:07Z tpowa $
+# $Id: PKGBUILD 180406 2013-03-21 07:26:50Z tpowa $
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Baechler <thomas@archlinux.org>
# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
@@ -6,8 +6,8 @@
pkgbase=linux-libre-xen # Build stock -LIBRE-XEN kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.8
-pkgver=${_basekernel}.3
-pkgrel=2
+pkgver=${_basekernel}.4
+pkgrel=1
arch=('i686')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -20,17 +20,13 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
# standard config files for mkinitcpio ramdisk
"${pkgbase}.preset"
'boot-logo.patch'
- 'change-default-console-loglevel.patch'
- 'drm-i915-enable-irqs-earlier-when-resuming.patch'
- 'drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch')
+ 'change-default-console-loglevel.patch')
md5sums=('84c2a77910932ffc7d958744ac9cf2f5'
- 'a762b6f22a64473a0b4d8dc5366b25d3'
+ 'be610dd93dbe033cfe04018b27557c3e'
'c13961a22d8c742fb31b59a1e27a0e7b'
'b7c2805bb287a644c0a303bf7721e534'
'04b21c79df0a952c22d681dd4f4562df'
- 'f3def2cefdcbb954c21d8505d23cc83c'
- '40e7b328977ad787a0b5584f193d63fe'
- '8b9159931fab0c191a86dbd5a46fa328')
+ 'f3def2cefdcbb954c21d8505d23cc83c')
_kernelname=${pkgbase#linux-libre}
_localversionname=-LIBRE-XEN
@@ -50,11 +46,6 @@ build() {
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
- # revert 2 patches which breaks displays
- # FS 34327
- patch -Rp1 -i "${srcdir}/drm-i915-enable-irqs-earlier-when-resuming.patch"
- patch -Rp1 -i "${srcdir}/drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch"
-
cat "${srcdir}/config" > ./.config # simpler
if [ "${_kernelname}" != "" ]; then
diff --git a/kernels/linux-libre-xen/drm-i915-enable-irqs-earlier-when-resuming.patch b/kernels/linux-libre-xen/drm-i915-enable-irqs-earlier-when-resuming.patch
deleted file mode 100644
index cb621d520..000000000
--- a/kernels/linux-libre-xen/drm-i915-enable-irqs-earlier-when-resuming.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-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: drm/i915: enable irqs earlier when resuming
-
-From: Daniel Vetter <daniel.vetter@ffwll.ch>
-
-commit 15239099d7a7a9ecdc1ccb5b187ae4cda5488ff9 upstream.
-
-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: 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>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/gpu/drm/i915/i915_drv.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
---- a/drivers/gpu/drm/i915/i915_drv.c
-+++ b/drivers/gpu/drm/i915/i915_drv.c
-@@ -486,6 +486,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);
-@@ -562,9 +563,19 @@ 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);
-- 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.
-+ * */
-+ dev_priv->enable_hotplug_processing = true;
- }
-
- intel_opregion_init(dev);
diff --git a/kernels/linux-libre-xen/drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch b/kernels/linux-libre-xen/drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch
deleted file mode 100644
index 8dc354488..000000000
--- a/kernels/linux-libre-xen/drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From 52d7ecedac3f96fb562cb482c139015372728638 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter@ffwll.ch>
-Date: Sat, 1 Dec 2012 21:03:22 +0100
-Subject: drm/i915: reorder setup sequence to have irqs for output setup
-
-From: Daniel Vetter <daniel.vetter@ffwll.ch>
-
-commit 52d7ecedac3f96fb562cb482c139015372728638 upstream.
-
-Otherwise the new&shiny irq-driven gmbus and dp aux code won't work that
-well. Noticed since the dp aux code doesn't have an automatic fallback
-with a timeout (since the hw provides for that already).
-
-v2: Simple move drm_irq_install before intel_modeset_gem_init, as
-suggested by Ben Widawsky.
-
-v3: Now that interrupts are enabled before all connectors are fully
-set up, we might fall over serving a HPD interrupt while things are
-still being set up. Instead of jumping through massive hoops and
-complicating the code with a separate hpd irq enable step, simply
-block out the hotplug work item from doing anything until things are
-in place.
-
-v4: Actually, we can enable hotplug processing only after the fbdev is
-fully set up, since we call down into the fbdev from the hotplug work
-functions. So stick the hpd enabling right next to the poll helper
-initialization.
-
-v5: We need to enable irqs before intel_modeset_init, since that
-function sets up the outputs.
-
-v6: Fixup cleanup sequence, too.
-
-Reviewed-by: Imre Deak <imre.deak@intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- 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, 19 insertions(+), 9 deletions(-)
-
---- a/drivers/gpu/drm/i915/i915_dma.c
-+++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -1297,19 +1297,21 @@ 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_gem_stolen;
--
-- intel_modeset_gem_init(dev);
-+ goto cleanup_irq;
-
- INIT_WORK(&dev_priv->console_resume_work, intel_console_resume);
-
-- ret = drm_irq_install(dev);
-- if (ret)
-- goto cleanup_gem;
-+ intel_modeset_gem_init(dev);
-
- /* Always safe in the mode setting case. */
- /* FIXME: do pre/post-mode set stuff in core KMS code */
-@@ -1317,7 +1319,10 @@ static int i915_load_modeset_init(struct
-
- ret = intel_fbdev_init(dev);
- if (ret)
-- goto cleanup_irq;
-+ goto cleanup_gem;
-+
-+ /* Only enable hotplug handling once the fbdev is fully set up. */
-+ dev_priv->enable_hotplug_processing = true;
-
- drm_kms_helper_poll_init(dev);
-
-@@ -1326,13 +1331,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,6 +672,7 @@ 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,6 +287,10 @@ 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/kernels/linux-libre-xen/linux-libre-xen.install b/kernels/linux-libre-xen/linux-libre-xen.install
index d707e2ef8..0165e78f0 100644
--- a/kernels/linux-libre-xen/linux-libre-xen.install
+++ b/kernels/linux-libre-xen/linux-libre-xen.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-xen
-KERNEL_VERSION=3.8.3-2-LIBRE-XEN
+KERNEL_VERSION=3.8.4-1-LIBRE-XEN
# set a sane PATH to ensure that critical utils like depmod will be found
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'