irq_disable (9) - Linux Manuals

irq_disable: Mark interrupt disabled

NAME

irq_disable - Mark interrupt disabled

SYNOPSIS

void irq_disable(struct irq_desc desc);

ARGUMENTS

desc

irq descriptor which should be disabled

DESCRIPTION

If the chip does not implement the irq_disable callback, we use a lazy disable approach. That means we mark the interrupt disabled, but leave the hardware unmasked. That's an optimization because we avoid the hardware access for the common case where no interrupt happens after we marked it disabled. If an interrupt happens, then the interrupt flow handler masks the line at the hardware level and marks it pending.

If the interrupt chip does not implement the irq_disable callback, a driver can disable the lazy approach for a particular irq line by calling 'irq_set_status_flags(irq, IRQ_DISABLE_UNLAZY)'. This can be used for devices which cannot disable the interrupt at the device level under certain circumstances and have to use disable_irq[_nosync] instead.

AUTHORS

Thomas Gleixner <tglx [at] linutronix.de>

Author.

Ingo Molnar <mingo [at] elte.hu>

Author.

COPYRIGHT