REQUEST_THREADED_IRQ(9) Public Functions Provided REQUEST_THREADED_IRQ(9)NAMErequest_threaded_irq - allocate an interrupt line
SYNOPSIS
int request_threaded_irq(unsigned int irq, irq_handler_t handler,
irq_handler_t thread_fn,
unsigned long irqflags, const char * devname,
void * dev_id);
ARGUMENTS
irq
Interrupt line to allocate
handler
Function to be called when the IRQ occurs. Primary handler for
threaded interrupts If NULL and thread_fn != NULL the default
primary handler is installed
thread_fn
Function called from the irq handler thread If NULL, no irq thread
is created
irqflags
Interrupt type flags
devname
An ascii name for the claiming device
dev_id
A cookie passed back to the handler function
DESCRIPTION
This call allocates interrupt resources and enables the interrupt line
and IRQ handling. From the point this call is made your handler
function may be invoked. Since your handler function must clear any
interrupt the board raises, you must take care both to initialise your
hardware and to set up the interrupt handler in the right order.
If you want to set up a threaded irq handler for your device then you
need to supply handler and thread_fn. handler ist still called in hard
interrupt context and has to check whether the interrupt originates
from the device. If yes it needs to disable the interrupt on the device
and return IRQ_WAKE_THREAD which will wake up the handler thread and
run thread_fn. This split handler design is necessary to support shared
interrupts.
Dev_id must be globally unique. Normally the address of the device data
structure is used as the cookie. Since the handler receives this value
it makes sense to use it.
If your interrupt is shared you must pass a non NULL dev_id as this is
required when freeing the interrupt.
FLAGS
IRQF_SHARED Interrupt is shared IRQF_DISABLED Disable local interrupts
while processing IRQF_SAMPLE_RANDOM The interrupt can be used for
entropy IRQF_TRIGGER_* Specify active edge(s) or level
AUTHORS
Thomas Gleixner <tglx@linutronix.de>
Author.
Ingo Molnar <mingo@elte.hu>
Author.
COPYRIGHTKernel Hackers Manual 2.6. November 2013 REQUEST_THREADED_IRQ(9)