[Intel-gfx] [PATCH v3 19/25] drm/i915: reinit GT power save during resume

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Apr 23 10:06:45 CEST 2014


On Tue, Apr 22, 2014 at 08:21:07PM +0300, Imre Deak wrote:
> During runtime suspend there can be a last pending rps.work, so make
> sure it's canceled. Note that in the runtime suspend callback we can't
> get any RPS interrupts since it's called only after the GPU goes idle
> and we set the minimum RPS frequency. The next possibility for an RPS
> interrupt is only after getting an RPM ref (for example because of a new
> GPU command) and calling the RPM resume callback.
> 
> v2:
> - patch introduced in v2 of the patchset
> v3:
> - Change the order of canceling the rps.work and disabling interrupts to
>   avoid the race between interrupt disabling and the the rps.work. Race
>   spotted by Ville.
> 
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index b87109c..edd4ab8 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -919,6 +919,12 @@ static int intel_runtime_suspend(struct device *device)
>  
>  	DRM_DEBUG_KMS("Suspending device\n");
>  
> +	/*
> +	 * rps.work can't be rearmed here, since we get here only after making
> +	 * sure the GPU is idle and the RPS freq is set to the minimum. See
> +	 * intel_mark_idle().
> +	 */
> +	cancel_work_sync(&dev_priv->rps.work);

Yeah makes sense. Well, unless the hardware is bonkers and
generates an UP interrupt while idle.

Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

>  	intel_runtime_pm_disable_interrupts(dev);
>  
>  	if (IS_GEN6(dev))
> @@ -970,6 +976,7 @@ static int intel_runtime_resume(struct device *device)
>  	gen6_update_ring_freq(dev);
>  
>  	intel_runtime_pm_restore_interrupts(dev);
> +	intel_reset_gt_powersave(dev);
>  
>  	DRM_DEBUG_KMS("Device resumed\n");
>  	return 0;
> -- 
> 1.8.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC



More information about the Intel-gfx mailing list