[Intel-gfx] [PATCH 2/6] drm/i915: Move GT powersaving init to i915_gem_init()
Sagar Arun Kamble
sagar.a.kamble at intel.com
Thu Nov 2 14:35:17 UTC 2017
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 at chris-wilson.co.uk>
> ---
> 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);
> }
More information about the Intel-gfx
mailing list