假定linux内核为pci驱动程序。该设备可以具有多个通道,可以分别“上调”或“下调”。
每个“上”调用函数.ndo_open
,每个“下”调用.ndo_stop
。
该设备仅需要一条中断线,可以使用request_irq ()
来请求。每个请求将创建一条中断线。
这里要注意的重要一点是,中断线很少见,因此不应盲目创建。
我对这种情况的问题是,我应该在哪里使用request_irq()
?
我认为对此有两种可能的解决方案。
probe()
中。这只会创建一条中断线,但始终会在PC打开时创建。因此它可能未被使用。.ndo_open
中。这只会在需要时创建中断线,但是多通道设备可以创建.ndo_open
的多重调用,这将导致request_irq()
的多次调用我无法在内核文档中找到有关这种情况的任何信息。如果对此有一些指导原则,您可以向我解释/显示吗?我还检查了git-repo中的其他pci驱动程序,但是没有一个(或至少我检查过的)这个问题。