[Intel-gfx] [PATCH] drm/i915: disable rc6 on Cantiga and Crestline

Jesse Barnes jbarnes at virtuousgeek.org
Sat Dec 25 05:29:34 CET 2010


The Ironlake code won't work on these old chips, so disable it to avoid
hanging older systems.

Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
---
 drivers/gpu/drm/i915/intel_display.c |   15 ++++++---------
 1 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 3f73690..3a488ef 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -6702,12 +6702,7 @@ void intel_modeset_init(struct drm_device *dev)
 	if (IS_IRONLAKE_M(dev)) {
 		ironlake_enable_drps(dev);
 		intel_init_emon(dev);
-	}
-
-	if (IS_GEN6(dev))
-		gen6_enable_rps(dev_priv);
 
-	if ((IS_GEN4(dev) || IS_GEN5(dev)) && IS_MOBILE(dev)) {
 		dev_priv->renderctx = intel_alloc_context_page(dev);
 		if (!dev_priv->renderctx)
 			goto skip_rc6;
@@ -6720,6 +6715,9 @@ void intel_modeset_init(struct drm_device *dev)
 		ironlake_enable_rc6(dev);
 	}
 
+	if (IS_GEN6(dev))
+		gen6_enable_rps(dev_priv);
+
 skip_rc6:
 	INIT_WORK(&dev_priv->idle_work, intel_idle_update);
 	setup_timer(&dev_priv->idle_timer, intel_gpu_idle_timer,
@@ -6752,14 +6750,13 @@ void intel_modeset_cleanup(struct drm_device *dev)
 	if (dev_priv->display.disable_fbc)
 		dev_priv->display.disable_fbc(dev);
 
-	if (IS_IRONLAKE_M(dev))
+	if (IS_IRONLAKE_M(dev)) {
 		ironlake_disable_drps(dev);
+		ironlake_disable_rc6(dev);
+	}
 	if (IS_GEN6(dev))
 		gen6_disable_rps(dev);
 
-	if ((IS_GEN4(dev) || IS_GEN5(dev)) && IS_MOBILE(dev))
-		ironlake_disable_rc6(dev);
-
 	mutex_unlock(&dev->struct_mutex);
 
 	/* Disable the irq before mode object teardown, for the irq might
-- 
1.7.2.3




More information about the Intel-gfx mailing list