Re: [PATCH 2/6] drm/i915: Move GT powersaving init to i915_gem_init()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 11/2/2017 6:12 PM, Chris Wilson wrote:
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@xxxxxxxxxxxxxxxxxx>
---
  drivers/gpu/drm/i915/i915_gem.c      | 7 ++++++-
  drivers/gpu/drm/i915/intel_display.c | 2 --
  drivers/gpu/drm/i915/intel_pm.c      | 2 --
  3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 9470ba0c1930..e36a3a840552 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -5017,6 +5017,12 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
  		goto out_unlock;
ret = i915_gem_init_hw(dev_priv);
+	if (ret)
+		goto out_unlock;
+
+	intel_init_gt_powersave(dev_priv);
Can this be moved before gem_init_hw. That way SLPC can get the initial platform RP configuration during uc_init.
+
+out_unlock:
  	if (ret == -EIO) {
  		/* Allow engine initialisation to fail by marking the GPU as
  		 * wedged. But we only want to do this where the GPU is angry,
@@ -5029,7 +5035,6 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
  		ret = 0;
  	}
-out_unlock:
  	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
  	mutex_unlock(&dev_priv->drm.struct_mutex);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 737de251d0f8..c3bf87c2036c 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -15174,8 +15174,6 @@ void intel_modeset_gem_init(struct drm_device *dev)
  {
  	struct drm_i915_private *dev_priv = to_i915(dev);
- intel_init_gt_powersave(dev_priv);
-
  	intel_setup_overlay(dev_priv);
  }
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 07118c0b69d3..6e1358d4e764 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -7900,7 +7900,6 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv)
  		intel_runtime_pm_get(dev_priv);
  	}
- mutex_lock(&dev_priv->drm.struct_mutex);
  	mutex_lock(&dev_priv->pcu_lock);
/* Initialize RPS limits (for userspace) */
@@ -7942,7 +7941,6 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv)
  	rps->boost_freq = rps->max_freq;
mutex_unlock(&dev_priv->pcu_lock);
-	mutex_unlock(&dev_priv->drm.struct_mutex);
intel_autoenable_gt_powersave(dev_priv);
  }

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux