drm/i915: Don't force serialisation on marking up execlists irq posted
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 17 May 2017 12:10:07 +0000 (13:10 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 17 May 2017 12:38:15 +0000 (13:38 +0100)
Since we coordinate with the execlists tasklet using a locked schedule
operation that ensures that after we set the engine->irq_posted we
always have an invocation of the tasklet, we do not need to use a locked
operation to set the engine->irq_posted itself.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170517121007.27224-12-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_irq.c

index 8f1ca6af33a199781235842792e583426c48ba5e..d63a2ba3bc4faf90ddde0fdb3c85aea6b640a2a7 100644 (file)
@@ -1360,7 +1360,7 @@ gen8_cs_irq_handler(struct intel_engine_cs *engine, u32 iir, int test_shift)
 
        if (iir & (GT_CONTEXT_SWITCH_INTERRUPT << test_shift)) {
                if (port_count(&engine->execlist_port[0])) {
-                       set_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
+                       __set_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
                        tasklet = true;
                }
        }