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 Power Management」について聞いたことがありますが、現在のベースライン コードで drivers/base/power や drivers/power などのフォルダーを見つけることができます。コードでこのドライバーを使用するにはどうすればよいですか。

詳細が不明な場合はお知らせください。どんな助けでも大歓迎です。

4

1 に答える 1

2

ドライバーは、ランタイムサスペンド/レジュームコールバックを実装する必要があります。このドキュメントを確認してください。

'struct dev_pm_ops'(linux / pm.hで定義)にデバイスPMコールバックを実装するためのサンプルコード

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,
    ....
}

これは単なるサンプル実装です。実際の実装は、要件によって異なります。

于 2013-03-11T10:26:03.700 に答える