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

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

drm/i915: fix i9xx irq enable/disable



Those functions are used on gen4 as well and gen4 does have a non-RCS
engine, so remove the BUG_ON and flip back the logic to what it was
before the ENGINE_READ/WRITE update

v2: update the posting read as well (Chris, Ville).

Fixes: baba6e57 ("drm/i915: take a reference to uncore in the engine and use it")
Signed-off-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.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/20190329165018.32953-1-daniele.ceraolospurio@intel.com
parent f6ac993f
Loading
Loading
Loading
Loading
+3 −7
Original line number Original line Diff line number Diff line
@@ -976,20 +976,16 @@ gen5_irq_disable(struct intel_engine_cs *engine)
static void
static void
i9xx_irq_enable(struct intel_engine_cs *engine)
i9xx_irq_enable(struct intel_engine_cs *engine)
{
{
	GEM_BUG_ON(engine->id != RCS0);

	engine->i915->irq_mask &= ~engine->irq_enable_mask;
	engine->i915->irq_mask &= ~engine->irq_enable_mask;
	ENGINE_WRITE(engine, RING_IMR, engine->i915->irq_mask);
	intel_uncore_write(engine->uncore, IMR, engine->i915->irq_mask);
	ENGINE_POSTING_READ(engine, RING_IMR);
	intel_uncore_posting_read_fw(engine->uncore, IMR);
}
}


static void
static void
i9xx_irq_disable(struct intel_engine_cs *engine)
i9xx_irq_disable(struct intel_engine_cs *engine)
{
{
	GEM_BUG_ON(engine->id != RCS0);

	engine->i915->irq_mask |= engine->irq_enable_mask;
	engine->i915->irq_mask |= engine->irq_enable_mask;
	ENGINE_WRITE(engine, RING_IMR, engine->i915->irq_mask);
	intel_uncore_write(engine->uncore, IMR, engine->i915->irq_mask);
}
}


static void
static void