[Intel-gfx] [PATCH] drm/i915: synchronize_irq() before turning off disp2d power well on VLV/CHV

Imre Deak imre.deak at intel.com
Mon Feb 22 12:37:25 UTC 2016


On pe, 2016-02-19 at 18:41 +0200, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> After we've told the irq code we don't want to handle display irqs
> anymore, we must make sure any display irq handling already
> kicked off has finished before we actually turn off the power well.
> 
> I wouldn't expect PIPESTAT based interrupts to occur anymore since
> vblanks/page flips/gmbus/etc should all be quiescent at this point.
> But at least hotplug interrupts could still occur. Hotplug
> interrupts may also kick off the workqueue based hotplug processing,
> but that code should take the required power domain references
> itself, so there shouldn't be any need to synchronize with the
> hotplug processing from the power well code.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

Reviewed-by: Imre Deak <imre.deak at intel.com>

> ---
>  drivers/gpu/drm/i915/intel_runtime_pm.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c
> b/drivers/gpu/drm/i915/intel_runtime_pm.c
> index a2e367cf99a2..59e9222223c9 100644
> --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
> @@ -941,6 +941,9 @@ static void vlv_display_power_well_deinit(struct
> drm_i915_private *dev_priv)
>  	valleyview_disable_display_irqs(dev_priv);
>  	spin_unlock_irq(&dev_priv->irq_lock);
>  
> +	/* make sure we're done processing display irqs */
> +	synchronize_irq(dev_priv->dev->irq);
> +
>  	vlv_power_sequencer_reset(dev_priv);
>  }
>  


More information about the Intel-gfx mailing list