为什么内核头文件不想将irq暴露给模块?

时间:2014-03-13 16:09:14

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

我正在通过下面的线程说明内核头文件不想将irq暴露给模块。

Accessing IRQ description array within a module and displaying action names

但我不确定为什么会这样?

另外,我看到一些没有使用irq的驱动程序,是否意味着这些设备没有被interuppt驱动?

其中一个驱动程序是lm73传感器linux / drivers / hwmon / lm73.c,它主要绑定到i2c总线,并且又是一个模块。

那么,这一切如何发生,设备如何选择不被中断驱动?

1 个答案:

答案 0 :(得分:1)

您可以在模块中使用IRQ个数字。这个问题有两个概念;一个是IRQ descripton,这是Linux内核用来管理中断的。

IRQ号码本身用于request_threaded_irq()的任何模块,并且功能类似。驱动程序通常通过platform_data或设备树传递IRQ号。

可能使用模块中的IRQ描述(我不知道你为什么要这样做)。更准确地说,不允许从模块中的IRQ转换为IRQ描述。通常情况下, description 只是一个由IRQ编号索引的大型数组,因此irq_to_desc()在某些情况下是宏,并且永远不会导出。