我正在通过下面的线程说明内核头文件不想将irq暴露给模块。
Accessing IRQ description array within a module and displaying action names
但我不确定为什么会这样?
另外,我看到一些没有使用irq的驱动程序,是否意味着这些设备没有被interuppt驱动?
其中一个驱动程序是lm73传感器linux / drivers / hwmon / lm73.c,它主要绑定到i2c总线,并且又是一个模块。
那么,这一切如何发生,设备如何选择不被中断驱动?
答案 0 :(得分:1)
您可以在模块中使用IRQ
个数字。这个问题有两个概念;一个是IRQ descripton,这是Linux内核用来管理中断的。
IRQ
号码本身用于request_threaded_irq()
的任何模块,并且功能类似。驱动程序通常通过platform_data或设备树传递IRQ
号。
你可能使用模块中的IRQ描述(我不知道你为什么要这样做)。更准确地说,不允许从模块中的IRQ
转换为IRQ描述。通常情况下, description 只是一个由IRQ编号索引的大型数组,因此irq_to_desc()
在某些情况下是宏,并且永远不会导出。