为多通道设备请求irq

时间:2019-04-03 10:19:02

标签: c linux linux-kernel linux-device-driver irq

假定linux内核为pci驱动程序。该设备可以具有多个通道,可以分别“上调”或“下调”。
每个“上”调用函数.ndo_open,每个“下”调用.ndo_stop
该设备仅需要一条中断线,可以使用request_irq ()来请求。每个请求将创建一条中断线。 这里要注意的重要一点是,中断线很少见,因此不应盲目创建。 我对这种情况的问题是,我应该在哪里使用request_irq()

我认为对此有两种可能的解决方案。

  1. probe()中。这只会创建一条中断线,但始终会在PC打开时创建。因此它可能未被使用。
  2. .ndo_open中。这只会在需要时创建中断线,但是多通道设备可以创建.ndo_open的多重调用,这将导致request_irq()的多次调用

我无法在内核文档中找到有关这种情况的任何信息。如果对此有一些指导原则,您可以向我解释/显示吗?我还检查了git-repo中的其他pci驱动程序,但是没有一个(或至少我检查过的)这个问题。

0 个答案:

没有答案