2013-03-11 147 views
2

我正在研究Android设备的液晶相关内核级设备驱动程序。有人可以帮助我在Android中使用与电源管理相关的API,通过它我可以注册我的驱动程序以接收设备状态的任何更改。如何使用android/linux电源驱动程序注册设备驱动程序?

更准确地说我希望我的司机收到来自电力驱动程序的任何事件(或有别的东西)的情况下,当系统状态的变化,例如从运行状态到睡眠状态或暂停状态。我希望我的司机还睡在其目前的情况是吃了所有的电池..

我有几个环节http://www.kandroid.org/online-pdk/guide/power_management.htmlhttp://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之类的文件夹。我如何在我的代码中使用这个驱动程序。

请让我知道,如果我失踪的任何细节。 任何帮助将不胜感激。

回答

2

您的驱动程序应该实现运行时暂停/恢复回调。检查这个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。真正的实施取决于您的要求。