diff mbox

drm/i915: initialize gen6 rps work queue for Ironlake+

Message ID 20110518135143.503d78ba@jbarnes-desktop (mailing list archive)
State New, archived
Headers show

Commit Message

Jesse Barnes May 18, 2011, 8:51 p.m. UTC
On Wed, 18 May 2011 13:42:54 -0700
Keith Packard <keithp@keithp.com> wrote:

> On Wed, 18 May 2011 10:22:27 -0700, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> 
> > The work queue is only used on gen6, but gen6 and ilk share an irq
> > handler.  I could make the work queue init conditional on gen6 though,
> > if that's what you're thinking.
> 
> Probably a good idea, mostly as documentation for which chips it is used
> on?

Here you go.

Jesse

From e0f3a48a7ef22cc8dc5c3c0a05756f7bce46d68c Mon Sep 17 00:00:00 2001
From: Jesse Barnes <jbarnes@virtuousgeek.org>
Date: Wed, 18 May 2011 13:49:41 -0700
Subject: [PATCH] drm/i915: initialize gen6 rps work queue on Sandy Bridge and Ivy Bridge

It's not used on Ironlake, but is used on later generations, so make
sure it exists before we try to use it in the interrupt handlers.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/i915_irq.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 349a03e..b79619a 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1736,6 +1736,8 @@  void ironlake_irq_preinstall(struct drm_device *dev)
 
 	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);
 
@@ -1887,7 +1889,6 @@  void i915_driver_irq_preinstall(struct drm_device * dev)
 
 	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);
 
 	if (I915_HAS_HOTPLUG(dev)) {
 		I915_WRITE(PORT_HOTPLUG_EN, 0);