Power Management 接口
接口實現
/include/linux/pm.h
/drivers/base/power/main.c
主要功能: 對下,定義
Device PM 相關的回調函數,讓各個 Driver 實現;對上,實現統一的 PM 操作函數,供 PM 核心邏輯調用。
struct dev_pm_ops {
int (*prepare)(struct device *dev);
void (*complete)(struct device *dev);
int (*suspend)(struct device *dev);
int (*resume)(struct device *dev);
int (*freeze)(struct device *dev);
int (*thaw)(struct device *dev);
int (*poweroff)(struct device *dev);
int (*restore)(struct device *dev);
int (*suspend_late)(struct device *dev);
int (*resume_early)(struct device *dev);
int (*freeze_late)(struct device *dev);
int (*thaw_early)(struct device *dev);
int (*poweroff_late)(struct device *dev);
int (*restore_early)(struct device *dev);
int (*suspend_noirq)(struct device *dev);
int (*resume_noirq)(struct device *dev);
int (*freeze_noirq)(struct device *dev);
int (*thaw_noirq)(struct device *dev);
int (*poweroff_noirq)(struct device *dev);
int (*restore_noirq)(struct device *dev);
int (*runtime_suspend)(struct device *dev);
int (*runtime_resume)(struct device *dev);
int (*runtime_idle)(struct device *dev);
};
從 Linux PM Core 的角度來說,這些 callbacks 并不復雜,因為 PM Core
要做的就是在特定的電源管理階段,調用相應的 callbacks,例如在 suspend/resume 的過程中,PM Core 會依次調用
prepare
— > suspend
— > suspend_late
— > suspend_noirq
wakeup
— > resume_noirq
— > resume_early
— > resume
- > complete
但由于這些 callbacks 需要由具體的設備 Driver 實現,這就要求驅動工程師在設計每個 Driver
時,清晰的知道這些 callbacks 的使用場景、是否需要實現、怎么實現,這才是 struct dev_pm_ops 的復雜之處。
Linux kernel 對 struct dev_pm_ops 的注釋已經非常詳細了,但要弄清楚每個
callback 的使用場景、背后的思考,并不是一件容易的事情。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
嵌入式
+關注
關注
5068文章
19014瀏覽量
303232 -
接口
+關注
關注
33文章
8496瀏覽量
150834 -
Linux
+關注
關注
87文章
11225瀏覽量
208917 -
Power
+關注
關注
1文章
498瀏覽量
67695 -
函數
+關注
關注
3文章
4304瀏覽量
62427
發布評論請先 登錄
相關推薦
PADs助手主要功能
` 本帖最后由 zhihuizhou 于 2011-11-7 15:09 編輯
目前Pads助手有以下主要功能:1. 原理圖元件批量編號功能:2. 鼠標功能增強。用鼠標右鍵 、中鍵拖動原理圖
發表于 10-31 16:44
基于linux socket can程序的主要功能
最近寫了個自認為不錯的基于linux socket can程序,主要功能:程序具備全部CAN功能,包括CAN標準幀/擴展幀接收與發送、CAN總線錯誤判斷、環回等功能適用基于LINUX SOCKET
發表于 07-08 06:40
電池管理系統的主要功能包括哪些
電池管理系統(BATTERY MANAGEMENT SYSTEM),俗稱電池保姆或電池管家,是連接車載動力電池和電動汽車的重要紐帶,其主要功能包括:電池物理參數實時監測;電池狀態估計;在線診斷與預警
發表于 09-08 07:17
romIP Core主要功能是什么
FPGA21 嵌入式塊Ram應用之Rom(Read only memory)模塊名稱: romIP Core主要功能 :調用內部的資源,實現只讀功能實驗目的 :了解這些芯片專用硬件資源的情況下,將其
發表于 12-27 08:13
bms主要功能有哪些
、儲能系統等新能源領域的關鍵部件,其主要功能是對電池組進行實時監控、保護和管理,以保證電池組的安全、穩定和高效運行。本文將對BMS的主要功能進行詳細介紹。 數據采集:BMS通過傳感器對電池組的電壓、電流、溫度等關鍵參數進行實時采集,以便對電池組的工作狀態進行全面了解。這些
評論