【发布时间】:2016-01-13 23:42:45
【问题描述】:
我想知道是否有一个内核 API 允许基于一些参数获取struct device。我正在使用主线内核,版本 3.3。
情况如下:
我已经注册了平台设备A并设置了一些与A关联的驱动程序数据。A有多个实例具有不同的ID,所以A(1)、A(2)、A(3)...
现在,我正在注册平台设备B。 B 的驱动程序需要拥有与 A(1) 或 A(2) 或相关联的 struct device 的特定实例
A(3)...
所以可以把它想象成B 在某种程度上拥有A(n)。我可以做到这一点的一种方法是让A 驱动程序有一个全局struct device 数组来跟踪所有注册的设备。但是,对于像平台驱动程序这样通用的东西,我想知道内核是否提供了一个 API 来基于一些参数(例如 platform driver name 和关联的 id)来获取它。
谢谢!
【问题讨论】:
-
目前唯一的方法是在设备之间建立父子关系。当设备是多功能的时有一个例外,在这种情况下,MFD 框架会很有帮助。从您的问题中不清楚设备(A 和 B)有什么样的关系。
-
我会说 MFD 驱动程序不适合我的情况。我很可能会按照 Federico 的回答创建自己的搜索方法。
标签: linux linux-device-driver device-driver