int __must_check
request_threaded_irq(unsigned int irq, irq_handler_t handler,
irq_handler_t thread_fn,
unsigned long flags, const char *name, void *dev);
- irq 에 따라서 handler, thread_fn 을 돌려달라고 등록하기.
- handler 에 NULL을 넣으면 default handler(irq_default_primary_handler) 가 불려 thread_fn 이 수행되는 동안 해당 irq 를 disable 상태로 만들어둔다. return 은 IRQ_WAKE_THEAD.
- 참고하여 handler function 을 만들도록 해야겠다. 또한, thread_fn 안에서는 irq 를 enable 해주도록 할 것.
- 왜 handler 와 thread_fn 두 개인가?
- thread_fn 을 NULL 로 넣어도 상관없음.
- 이 경우 그냥 request_irq 와 같음.
예제: mmc host 에서 새로운 mmc card 인식을 위하여 gpio 를 irq 로 연결할 때.
linux version 2.6x 도입.