|
@@ -168,17 +168,21 @@ static void irq_enable(struct intel_engine_cs *engine)
|
|
set_bit(ENGINE_IRQ_BREADCRUMB, &engine->irq_posted);
|
|
set_bit(ENGINE_IRQ_BREADCRUMB, &engine->irq_posted);
|
|
|
|
|
|
/* Caller disables interrupts */
|
|
/* Caller disables interrupts */
|
|
- spin_lock(&engine->i915->irq_lock);
|
|
|
|
- engine->irq_enable(engine);
|
|
|
|
- spin_unlock(&engine->i915->irq_lock);
|
|
|
|
|
|
+ if (engine->irq_enable) {
|
|
|
|
+ spin_lock(&engine->i915->irq_lock);
|
|
|
|
+ engine->irq_enable(engine);
|
|
|
|
+ spin_unlock(&engine->i915->irq_lock);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
static void irq_disable(struct intel_engine_cs *engine)
|
|
static void irq_disable(struct intel_engine_cs *engine)
|
|
{
|
|
{
|
|
/* Caller disables interrupts */
|
|
/* Caller disables interrupts */
|
|
- spin_lock(&engine->i915->irq_lock);
|
|
|
|
- engine->irq_disable(engine);
|
|
|
|
- spin_unlock(&engine->i915->irq_lock);
|
|
|
|
|
|
+ if (engine->irq_disable) {
|
|
|
|
+ spin_lock(&engine->i915->irq_lock);
|
|
|
|
+ engine->irq_disable(engine);
|
|
|
|
+ spin_unlock(&engine->i915->irq_lock);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
void __intel_engine_disarm_breadcrumbs(struct intel_engine_cs *engine)
|
|
void __intel_engine_disarm_breadcrumbs(struct intel_engine_cs *engine)
|