[x86] drm/i915: Unconditionally initialise the interrupt workers, thanks to Bjørn Mork (Closes: #692607)

svn path=/dists/sid/linux/; revision=19911
This commit is contained in:
Ben Hutchings 2013-03-10 23:52:58 +00:00
parent 564316e564
commit 3d8c03a2f0
3 changed files with 62 additions and 0 deletions

2
debian/changelog vendored
View File

@ -63,6 +63,8 @@ linux (3.2.40-1) UNRELEASED; urgency=low
* test-patches: Add --fuzz option to allow testing patches that have fuzz
* [x86] efi: Fix processor-specific memcpy() build error (Closes: #698581)
* udeb: Add hid-topseed to input-modules (Closes: #702611)
* [x86] drm/i915: Unconditionally initialise the interrupt workers,
thanks to Bjørn Mork (Closes: #692607)
-- Ben Hutchings <ben@decadent.org.uk> Wed, 27 Feb 2013 03:48:30 +0000

View File

@ -0,0 +1,59 @@
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 24 Apr 2012 22:59:41 +0100
Subject: drm/i915: Unconditionally initialise the interrupt workers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
commit 8b2e326dc7c5aa6952c88656d04d0d81fd85a6f8 upstream.
Rather than duplicate similar code across the IRQ installers, perform
the initialisation of the workers upfront. This will lead to simpler
teardown and quiescent code as we can assume that the workers have
been initialised.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
[bmork: deleted valleyview hunk for 3.2 backport]
Signed-off-by: Bjørn Mork <bjorn@mork.no>
---
drivers/gpu/drm/i915/i915_irq.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1806,10 +1806,6 @@ static void ironlake_irq_preinstall(stru
atomic_set(&dev_priv->irq_received, 0);
- INIT_WORK(&dev_priv->hotplug_work, i915_hotplug_work_func);
- INIT_WORK(&dev_priv->error_work, i915_error_work_func);
- if (IS_GEN6(dev) || IS_IVYBRIDGE(dev))
- INIT_WORK(&dev_priv->rps_work, gen6_pm_rps_work);
I915_WRITE(HWSTAM, 0xeffe);
@@ -1983,9 +1979,6 @@ static void i915_driver_irq_preinstall(s
atomic_set(&dev_priv->irq_received, 0);
- INIT_WORK(&dev_priv->hotplug_work, i915_hotplug_work_func);
- INIT_WORK(&dev_priv->error_work, i915_error_work_func);
-
if (I915_HAS_HOTPLUG(dev)) {
I915_WRITE(PORT_HOTPLUG_EN, 0);
I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
@@ -2290,6 +2283,12 @@ static void i8xx_irq_uninstall(struct dr
void intel_irq_init(struct drm_device *dev)
{
+ struct drm_i915_private *dev_priv = dev->dev_private;
+
+ INIT_WORK(&dev_priv->hotplug_work, i915_hotplug_work_func);
+ INIT_WORK(&dev_priv->error_work, i915_error_work_func);
+ INIT_WORK(&dev_priv->rps_work, gen6_pm_rps_work);
+
dev->driver->get_vblank_counter = i915_get_vblank_counter;
dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */
if (IS_G4X(dev) || IS_GEN5(dev) || IS_GEN6(dev) || IS_IVYBRIDGE(dev)) {

View File

@ -614,3 +614,4 @@ bugfix/all/mm-Try-harder-to-allocate-vmemmap-blocks.patch
debian/x86-efi-avoid-abi-change-in-3.2.38.patch
features/x86/efi-stub/0019-x86-efi-Fix-processor-specific-memcpy-build-error.patch
debian/pps-avoid-abi-change-in-3.2.40.patch
bugfix/x86/drm-i915-Unconditionally-initialise-the-interrupt-wo.patch