2012년 10월 26일 금요일

request_threaded_irq


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  도입.

댓글 없음:

댓글 쓰기