Linux kernel 如何向内核中的设备添加依赖项?

Linux kernel 如何向内核中的设备添加依赖项?,linux-kernel,linux-device-driver,Linux Kernel,Linux Device Driver,我正在使用一些内核2.6.37驱动程序 我有一个LCD面板驱动程序,就像那些面板驱动程序一样,它的电源控制是像LED类的LED设备一样实现的 这已经工作了一段时间,因为如果按照正确的顺序初始化,LED设备总是可以在面板开始初始化之前出现 然而,我现在正试图让suspend to ram工作,我真的很难让LED和面板以正确的顺序挂起/恢复。面板总是在断电后暂停,这样做没有任何好处,而且总是在通电前醒来,这也会适得其反 我做了一些研究,发现在2.6.33左右,他们在电源管理中引入了多线程,似乎唯一的

我正在使用一些内核2.6.37驱动程序

我有一个LCD面板驱动程序,就像那些面板驱动程序一样,它的电源控制是像LED类的LED设备一样实现的

这已经工作了一段时间,因为如果按照正确的顺序初始化,LED设备总是可以在面板开始初始化之前出现

然而,我现在正试图让suspend to ram工作,我真的很难让LED和面板以正确的顺序挂起/恢复。面板总是在断电后暂停,这样做没有任何好处,而且总是在通电前醒来,这也会适得其反

我做了一些研究,发现在2.6.33左右,他们在电源管理中引入了多线程,似乎唯一的解决方案是指定两者之间明确的父子关系

这真的很重要,因为LED类驱动程序不是设计为任何事物的父级。更糟糕的是,这个电源控制LED驱动器是通过I2C实现的,并且在挂起到ram的过程中自身会中断。更糟糕的是,面板驱动程序是omap dss驱动程序的子代,它非常特定于平台,我还没有时间完全理解它

或者,只是摆脱丑陋的电源驱动器伪装成一个LED和重写它与真正的下午驱动程序接口,这再次我不知道如何做,但也

这已经是一个地狱的丑陋的黑客,所以我觉得很好,使它作为丑陋的,因为它需要使暂停ram的工作

在这种特殊情况下,挂起/唤醒仅在一个特定应用程序的上下文中发生,因此在LED电源重新打开并稳定后,要求应用程序在应用程序的用户空间中重做面板唤醒并不十分困难


有什么高明或丑陋的建议可以让这项工作成功吗?

监管机构框架是你的朋友。然而,在Linux中遇到了已知的问题,设备之间除了父子关系之外没有其他关系。有时,隐含这样一个概念是很棘手的。