@@ -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