如何使用android/linux电源驱动程序注册设备驱动程序?
问题描述:
我正在研究Android设备的液晶相关内核级设备驱动程序。有人可以帮助我在Android中使用与电源管理相关的API,通过它我可以注册我的驱动程序以接收设备状态的任何更改。如何使用android/linux电源驱动程序注册设备驱动程序?
更准确地说我希望我的司机收到来自电力驱动程序的任何事件(或有别的东西)的情况下,当系统状态的变化,例如从运行状态到睡眠状态或暂停状态。我希望我的司机还睡在其目前的情况是吃了所有的电池..
我有几个环节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电源管理”,可以在我当前的基准代码中找到像drivers/base/power和drivers/power之类的文件夹。我如何在我的代码中使用这个驱动程序。
请让我知道,如果我失踪的任何细节。 任何帮助将不胜感激。
答
您的驱动程序应该实现运行时暂停/恢复回调。检查这个doc。
样本代码以实现装置PM回调在 '结构dev_pm_ops'(如在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。真正的实施取决于您的要求。