The request_threaded_irq () function has been added to allow developers to split the interrupt handling code in two. One part that will be executed with blocked interrupts, and the second part that the kernel thread can execute without blocking interrupts. More on why, you can read this:
http://lwn.net/Articles/302043/
In your case, the driver you contacted does the following:
err = request_threaded_irq(client->irq, NULL, cy8ctmg110_irq_thread, IRQF_TRIGGER_RISING, "touch_reset_key", ts);
Passing NULL for the second arg, the "handler", the thread_fn argument, or the cy8ctmg110_irq_thread () function is called when an interrupt is detected.
For you, choosing which irq query function will depend on what your driver should do in the context of the interrupt.
source share