2

我正在为 android 设备开发与 lcd 相关的内核级设备驱动程序。有人可以帮我处理 Android 中与电源管理相关的 API,通过它我可以注册我的驱动程序以接收设备状态的任何更改。

更准确地说,我希望我的驱动程序在系统状态发生变化时(例如从运行状态变为睡眠状态或挂起状态)接收来自电源驱动程序的任何事件(或其他事件)。我希望我的司机也能睡觉,在当前情况下,这会耗尽所有电池。

我有几个链接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 电源管理”,并且可以在我当前的基线代码中找到诸如驱动程序/基础/电源和驱动程序/电源之类的文件夹。如何在我的代码中使用此驱动程序。

如果我缺少任何细节,请告诉我。任何帮助将不胜感激。

4

1 回答 1

2

您的驱动程序应该实现运行时挂起/恢复回调。检查这个文档

在 'struct dev_pm_ops' 中实现设备 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。实际实施取决于您的要求。

于 2013-03-11T10:26:03.700 回答