| irq_disable(9) - phpMan
IRQ_DISABLE(9) Internal Functions Provided IRQ_DISABLE(9)
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
Kernel Hackers Manual 4.8. January 2017 IRQ_DISABLE(9)
|