[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