全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

Power Management接口实现主要功能

时间:2023-09-11 15:57

人气:

作者:admin

标签: 接口  函数  Power 

导读:Power Management 接口 接口实现 /include/ linux/pm.h /drivers/ base /power/m ain.c 主要功能: 对下,定义 Device PM 相关的回调函数,让各个 Driver 实现;对上,实现统一的 PM 操作函数,供 PM 核心逻辑调...

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 的使用场景、背后的思考,并不是一件容易的事情。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信