I posted this is the thread which discussed about request_threaded_irq but I did not get any reply. So I am posting it freshly.
I am working on a touchscreen driver for capacitive touchscree. It used request_threaded_irq() call instead of request_irq(). I could not understand the basic difference betweeen two. It says :-
Name
request_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
the Handler and Thread_fn arguments are the ones which are confusing. Also there is no work function defined in the driver.
Here is the driver which I am refering to.
Can somebody help me in understanding this?