2016-08-19 64 views
0

不同驱动程序共享的中断线是否有不同的唯一中断处理程序?例如,这样的事情有可能吗?Linux中的共享中断线可以有不同的中断处理程序吗?

在驱动1:request_irq(irq, &handler1, IRQF_SHARED,"dev1", dev1);

的驱动2:request_irq(irq, &handler2, IRQF_SHARED,"dev2", dev2);

+0

明确的标题,提高语言 –

+0

明确的标题,提高语法 –

+0

相关问题http://unix.stackexchange.com/questions/47306/how-does-the-linux-kernel-handle-shared-irqs可以帮助你 – user1929959

回答

0

如果所有司机要共享这个IRQ与IRQF_SHARED这个工作要求它 - 如果只有其中一人不组国旗,即只需要IRQ,你的request_irq将失败。

另一个先决条件是您的处理程序需要能够以某种方式从硬件中识别出它是否是他的设备触发了IRQ。这决定了处理程序的返回值。

内核将依次调用所有共享IRQ的处理程序,直到找到实际处理该IRQ的处理程序。

+0

非常感谢@tofro –