The Ironlake code won't work on these old chips, so disable it to avoid hanging older systems.
Signed-off-by: Jesse Barnes <[email protected]> --- 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 _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
