[Intel-gfx] [PATCH] drm/i915: initialize gen6 rps work queue for Ironlake+

Jesse Barnes jbarnes at virtuousgeek.org
Wed May 18 22:51:43 CEST 2011


On Wed, 18 May 2011 13:42:54 -0700
Keith Packard <keithp at keithp.com> wrote:

> On Wed, 18 May 2011 10:22:27 -0700, Jesse Barnes <jbarnes at 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 at 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 at virtuousgeek.org>
---
 drivers/gpu/drm/i915/i915_irq.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

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);
-- 
1.7.4.1




More information about the Intel-gfx mailing list