include/linux/interrupt.h
request_thread_irq 和 request_irq 互相為wrapper.-- 由 CONFIG_GENERIC_HARDIRQS 有否定義決定。
im5x 有 define,所以 request_irq( ) call request_thread_irq.
後者implement 在:
kernel/irq/manage.c
裡面也有 disable_irq( ) 和 disable_irq_nosync( ) 的實做。
基本上 disable_irq( ) 就是:
disable_irq_nosync();
irq_sync( );
其中 irq_sync( ) 就是 check 有沒有 pending 的 irq, 如果有,就去執行 handler。
沒有留言:
張貼留言