原文 : http://blog.csdn.net/jhluroom/article/details/6882365
Linux可以让多个设备共享一个中断号,而且共享同一中断的中断处理程序形成一个链表,内核对每个中断处理程序都要执行,那么,没有产生中断的设备本该靠边站的,它的中断处理程序也被执行了。
实际上:共享的处理程序与非共享的处理程序在注册和运行方式上比较相似,但差异主要有以下三处:
2、对每个注册的中断处理程序来说,dev_id参数必须唯一。指向任一设备结构的指针就可以满足这一要求;通常会选择设备结构,因为它是唯一的,而且
中断处理程序可能会用到它。不能给共享的处理程序传递NULL值。
3、中断处理程序必须能够区分它的设备是否真的产生了中断。这既需要硬件的支持,也需要处理程序中有相关的处理逻辑。
同时我们也要注意以下的内容:
要使用中断线,就得进行中断线的申请,即IRQ(Interrupt Requirement,中断请求),我们也常把申请一条中断线称为申请一个IRQ或者是申请一个中断号。