[Intel-gfx] [PATCH 12/15] drm/i915: Interrupt routing for GuC submission
Chris Wilson
chris at chris-wilson.co.uk
Tue Jun 16 02:24:12 PDT 2015
On Mon, Jun 15, 2015 at 07:36:30PM +0100, Dave Gordon wrote:
> +static void direct_interrupts_to_guc(struct drm_i915_private *dev_priv)
> +{
> + struct intel_engine_cs *ring;
> + int i, irqs;
> +
> + /* tell all command streamers to forward interrupts and vblank to GuC */
> + irqs = _MASKED_FIELD(GFX_FORWARD_VBLANK_MASK, GFX_FORWARD_VBLANK_ALWAYS);
> + irqs |= _MASKED_BIT_ENABLE(GFX_INTERRUPT_STEERING);
> + for_each_ring(ring, dev_priv, i)
> + I915_WRITE(RING_MODE_GEN7(ring), irqs);
> +
> + /* tell DE to send (all) flip_done to GuC */
> + irqs = DERRMR_PIPEA_PRI_FLIP_DONE | DERRMR_PIPEA_SPR_FLIP_DONE |
> + DERRMR_PIPEB_PRI_FLIP_DONE | DERRMR_PIPEB_SPR_FLIP_DONE |
> + DERRMR_PIPEC_PRI_FLIP_DONE | DERRMR_PIPEC_SPR_FLIP_DONE;
> + /* Unmasked bits will cause GuC response message to be sent */
> + I915_WRITE(DE_GUCRMR, ~irqs);
That's scary since userspace depends on a few more DERRMR events
(wait-for-scanline). Where will they end up?
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list