Browse Source

drm/i915: Move GT powersaving init to i915_gem_init()

GT powersaving is tightly coupled to the request infrastructure. To
avoid complications with the order of initialisation in the next patch
(where we want to send requests to hw during GEM init) move the
powersaving initialisation into the purview of i915_gem_init().

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171110142634.10551-3-chris@chris-wilson.co.uk
Chris Wilson 7 years ago
parent
commit
f58d13d571

+ 2 - 0
drivers/gpu/drm/i915/i915_gem.c

@@ -5021,6 +5021,8 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 	if (ret)
 	if (ret)
 		goto out_unlock;
 		goto out_unlock;
 
 
+	intel_init_gt_powersave(dev_priv);
+
 	ret = i915_gem_init_hw(dev_priv);
 	ret = i915_gem_init_hw(dev_priv);
 	if (ret == -EIO) {
 	if (ret == -EIO) {
 		/* Allow engine initialisation to fail by marking the GPU as
 		/* Allow engine initialisation to fail by marking the GPU as

+ 0 - 2
drivers/gpu/drm/i915/intel_display.c

@@ -15198,8 +15198,6 @@ void intel_modeset_gem_init(struct drm_device *dev)
 {
 {
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct drm_i915_private *dev_priv = to_i915(dev);
 
 
-	intel_init_gt_powersave(dev_priv);
-
 	intel_init_clock_gating(dev_priv);
 	intel_init_clock_gating(dev_priv);
 
 
 	intel_setup_overlay(dev_priv);
 	intel_setup_overlay(dev_priv);

+ 0 - 2
drivers/gpu/drm/i915/intel_pm.c

@@ -7918,7 +7918,6 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv)
 		intel_runtime_pm_get(dev_priv);
 		intel_runtime_pm_get(dev_priv);
 	}
 	}
 
 
-	mutex_lock(&dev_priv->drm.struct_mutex);
 	mutex_lock(&dev_priv->pcu_lock);
 	mutex_lock(&dev_priv->pcu_lock);
 
 
 	/* Initialize RPS limits (for userspace) */
 	/* Initialize RPS limits (for userspace) */
@@ -7960,7 +7959,6 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv)
 	rps->boost_freq = rps->max_freq;
 	rps->boost_freq = rps->max_freq;
 
 
 	mutex_unlock(&dev_priv->pcu_lock);
 	mutex_unlock(&dev_priv->pcu_lock);
-	mutex_unlock(&dev_priv->drm.struct_mutex);
 
 
 	intel_autoenable_gt_powersave(dev_priv);
 	intel_autoenable_gt_powersave(dev_priv);
 }
 }