Была добавлена функция request_threaded_irq (), чтобы позволить разработчикам разделить код обработки прерываний на две части. Одна часть, которая будет выполняться с заблокированными прерываниями, и вторая часть, которая может быть выполнена потоком ядра без блокированных прерываний. Подробнее о том, почему, вы можете прочитать это:
http://lwn.net/Articles/302043/
В вашем случае драйвер, с которым вы связаны, делает это:
err = request_threaded_irq(client->irq, NULL, cy8ctmg110_irq_thread,
IRQF_TRIGGER_RISING, "touch_reset_key", ts);
Передав NULL для второго аргумента, «обработчик», аргумент thread_fn или функция cy8ctmg110_irq_thread () будут вызваны при обнаружении прерывания.
Для вас выбор функции запроса irq будет зависеть от того, что должен делать ваш драйвер в контексте прерывания.