[Intel-gfx] [PATCH 07/11] drm/i915: Tidy i915_gem_suspend()

Mika Kuoppala mika.kuoppala at linux.intel.com
Tue Jul 10 10:01:41 UTC 2018


Chris Wilson <chris at chris-wilson.co.uk> writes:

> In the next patch, we will make a fairly minor change to flush
> outstanding resets before suspend. In order to keep churn to a minimum
> in that functional patch, we fix up the comments and coding style now.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

Reviewed-by: Mika Kuoppala <mika.kuoppala at linux.intel.com>

> ---
>  drivers/gpu/drm/i915/i915_gem.c | 50 +++++++++++++++++----------------
>  1 file changed, 26 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index b730a53b426b..6a1bb88b5730 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -5029,32 +5029,32 @@ void i915_gem_sanitize(struct drm_i915_private *i915)
>  	mutex_unlock(&i915->drm.struct_mutex);
>  }
>  
> -int i915_gem_suspend(struct drm_i915_private *dev_priv)
> +int i915_gem_suspend(struct drm_i915_private *i915)
>  {
> -	struct drm_device *dev = &dev_priv->drm;
>  	int ret;
>  
>  	GEM_TRACE("\n");
>  
> -	intel_runtime_pm_get(dev_priv);
> -	intel_suspend_gt_powersave(dev_priv);
> +	intel_runtime_pm_get(i915);
> +	intel_suspend_gt_powersave(i915);
>  
> -	mutex_lock(&dev->struct_mutex);
> +	mutex_lock(&i915->drm.struct_mutex);
>  
> -	/* We have to flush all the executing contexts to main memory so
> +	/*
> +	 * We have to flush all the executing contexts to main memory so
>  	 * that they can saved in the hibernation image. To ensure the last
>  	 * context image is coherent, we have to switch away from it. That
> -	 * leaves the dev_priv->kernel_context still active when
> +	 * leaves the i915->kernel_context still active when
>  	 * we actually suspend, and its image in memory may not match the GPU
>  	 * state. Fortunately, the kernel_context is disposable and we do
>  	 * not rely on its state.
>  	 */
> -	if (!i915_terminally_wedged(&dev_priv->gpu_error)) {
> -		ret = i915_gem_switch_to_kernel_context(dev_priv);
> +	if (!i915_terminally_wedged(&i915->gpu_error)) {
> +		ret = i915_gem_switch_to_kernel_context(i915);
>  		if (ret)
>  			goto err_unlock;
>  
> -		ret = i915_gem_wait_for_idle(dev_priv,
> +		ret = i915_gem_wait_for_idle(i915,
>  					     I915_WAIT_INTERRUPTIBLE |
>  					     I915_WAIT_LOCKED |
>  					     I915_WAIT_FOR_IDLE_BOOST,
> @@ -5062,33 +5062,35 @@ int i915_gem_suspend(struct drm_i915_private *dev_priv)
>  		if (ret && ret != -EIO)
>  			goto err_unlock;
>  
> -		assert_kernel_context_is_current(dev_priv);
> +		assert_kernel_context_is_current(i915);
>  	}
> -	mutex_unlock(&dev->struct_mutex);
> +	mutex_unlock(&i915->drm.struct_mutex);
>  
> -	intel_uc_suspend(dev_priv);
> +	intel_uc_suspend(i915);
>  
> -	cancel_delayed_work_sync(&dev_priv->gpu_error.hangcheck_work);
> -	cancel_delayed_work_sync(&dev_priv->gt.retire_work);
> +	cancel_delayed_work_sync(&i915->gpu_error.hangcheck_work);
> +	cancel_delayed_work_sync(&i915->gt.retire_work);
>  
> -	/* As the idle_work is rearming if it detects a race, play safe and
> +	/*
> +	 * As the idle_work is rearming if it detects a race, play safe and
>  	 * repeat the flush until it is definitely idle.
>  	 */
> -	drain_delayed_work(&dev_priv->gt.idle_work);
> +	drain_delayed_work(&i915->gt.idle_work);
>  
> -	/* Assert that we sucessfully flushed all the work and
> +	/*
> +	 * Assert that we successfully flushed all the work and
>  	 * reset the GPU back to its idle, low power state.
>  	 */
> -	WARN_ON(dev_priv->gt.awake);
> -	if (WARN_ON(!intel_engines_are_idle(dev_priv)))
> -		i915_gem_set_wedged(dev_priv); /* no hope, discard everything */
> +	WARN_ON(i915->gt.awake);
> +	if (WARN_ON(!intel_engines_are_idle(i915)))
> +		i915_gem_set_wedged(i915); /* no hope, discard everything */
>  
> -	intel_runtime_pm_put(dev_priv);
> +	intel_runtime_pm_put(i915);
>  	return 0;
>  
>  err_unlock:
> -	mutex_unlock(&dev->struct_mutex);
> -	intel_runtime_pm_put(dev_priv);
> +	mutex_unlock(&i915->drm.struct_mutex);
> +	intel_runtime_pm_put(i915);
>  	return ret;
>  }
>  
> -- 
> 2.18.0


More information about the Intel-gfx mailing list