我正在为Android设备开发一个与lcd相关的内核级设备驱动程序。有人可以帮我解决Android中与电源管理相关的API,通过它我可以注册我的驱动程序来接收设备状态的任何变化。
更确切地说,我希望我的驱动程序在系统状态发生变化时(例如从运行状态到睡眠状态或暂停状态)接收来自电源驱动程序的任何事件(或者还有其他事件)。我希望我的司机也能睡觉,这在当前的情况下正在吃掉所有的电池......
我的链接很少http://www.kandroid.org/online-pdk/guide/power_management.html 和http://developer.android.com/reference/android/os/PowerManager.html
讨论android_register_early_suspend和android_register_early_resume等函数,但我在整个内核源代码中找不到对这些函数的调用(基于linux 3.0)
我听说过“Linux电源管理”,可以在我当前的基线代码中找到驱动程序/基础/电源和驱动程序/电源等文件夹。如何在我的代码中使用此驱动程序。
如果我遗漏任何细节,请告诉我。 任何帮助都将受到高度赞赏。
答案 0 :(得分:2)
您的驱动程序应实现运行时挂起/恢复回调。检查此doc。
在'struct dev_pm_ops'中实现Device PM回调的示例代码(在linux / pm.h中定义)
static int lcdxxx_suspend(struct device *dev)
{
//Your Code to suspend your device
}
static int lcdxxx_resume(struct device *dev)
{
//Your code to resume your device
}
static const struct dev_pm_ops lcd_pm_ops = {
.suspend = lcdxxx_suspend,
.resume = lcdxxx_resume,
};
struct device_driver lcd_driver = {
....
.pm = &lcd_pm_ops,
....
}
这只是示例impl。真正的实施取决于您的要求。