Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 210060ed authored by Daniele Ceraolo Spurio's avatar Daniele Ceraolo Spurio Committed by Chris Wilson
Browse files

drm/i915: use engine->irq_keep_mask when resetting irqs



The "reset" value and the "keep" value are the same.
While we are here, add a TODO for gen11 interrupt reset

Suggested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20180314182653.26981-3-daniele.ceraolospurio@intel.com
parent 74419daa
Loading
Loading
Loading
Loading
+6 −2
Original line number Original line Diff line number Diff line
@@ -1666,6 +1666,10 @@ static void reset_irq(struct intel_engine_cs *engine)
	struct drm_i915_private *dev_priv = engine->i915;
	struct drm_i915_private *dev_priv = engine->i915;
	int i;
	int i;


	/* TODO: correctly reset irqs for gen11 */
	if (WARN_ON_ONCE(INTEL_GEN(engine->i915) >= 11))
		return;

	GEM_BUG_ON(engine->id >= ARRAY_SIZE(gtiir));
	GEM_BUG_ON(engine->id >= ARRAY_SIZE(gtiir));


	/*
	/*
@@ -1677,11 +1681,11 @@ static void reset_irq(struct intel_engine_cs *engine)
	 */
	 */
	for (i = 0; i < 2; i++) {
	for (i = 0; i < 2; i++) {
		I915_WRITE(GEN8_GT_IIR(gtiir[engine->id]),
		I915_WRITE(GEN8_GT_IIR(gtiir[engine->id]),
			   GT_CONTEXT_SWITCH_INTERRUPT << engine->irq_shift);
			   engine->irq_keep_mask);
		POSTING_READ(GEN8_GT_IIR(gtiir[engine->id]));
		POSTING_READ(GEN8_GT_IIR(gtiir[engine->id]));
	}
	}
	GEM_BUG_ON(I915_READ(GEN8_GT_IIR(gtiir[engine->id])) &
	GEM_BUG_ON(I915_READ(GEN8_GT_IIR(gtiir[engine->id])) &
		   (GT_CONTEXT_SWITCH_INTERRUPT << engine->irq_shift));
		   engine->irq_keep_mask);


	clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
	clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
}
}