[Intel-gfx] [PATCH 28/30] drm/i915/guc: Correctly handle GuC interrupts on Gen11
Chris Wilson
chris at chris-wilson.co.uk
Fri Mar 29 22:37:43 UTC 2019
Quoting Michal Wajdeczko (2019-03-29 22:11:16)
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 3dd971c09d52..c1b4fbd5f496 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -573,6 +573,44 @@ static void gen9_disable_guc_interrupts(struct drm_i915_private *dev_priv)
> gen9_reset_guc_interrupts(dev_priv);
> }
>
> +static void gen11_reset_guc_interrupts(struct drm_i915_private *dev_priv)
> +{
> + spin_lock_irq(&dev_priv->irq_lock);
> +
> + while (gen11_reset_one_iir(dev_priv, 0, GEN11_GUC))
> + ;
I have to say this and gen11_reset_rps_interupts() is brave. Are these
registers move than double-buffered? Should we throw in a '&& loops++ < 3'?
-Chris
More information about the Intel-gfx
mailing list