我只是通过下面的线程说,内核头文件不想公开irq的模块。为什么内核头文件不想公开irq的模块?
Accessing IRQ description array within a module and displaying action names
,但我不知道为什么会这样呢?
此外,我看到一些不使用irq的驱动程序,这是否意味着这些设备不是interuppt驱动?
这样的驱动程序之一是针对lm73传感器linux/drivers/hwmon/lm73.c,它主要绑定到i2c总线并且又是一个模块。
那么,这是怎么回事,设备如何选择不被中断驱动?
lm73只是插在i2c子系统的顶部,而i2c驱动程序(其中有很多不同的变体)很可能是中断驱动的。 – nos
@nos但是应该有一些方法让设备也可以中断它的总线。不是这种情况吗? –
也许吧。这取决于子系统。如果你正在编写一个位于i2c层之上的模块,你应该调用i2c层定义的函数。而且,如果需要,该层将负责处理总线,无论是否需要中断。这样你就不会被绑定到任何特定的i2c芯片。 lm73模块就是这种情况,它是i2c总线远端传感器的驱动程序,它不需要知道i2c总线的本地端如何工作,只要它能发送消息到另一端。 – nos