0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Power Management接口实现主要功能

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:蜗窝科技 2023-09-11 15:57 次阅读

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4983

    文章

    18286

    浏览量

    288523
  • 接口
    +关注

    关注

    33

    文章

    7640

    浏览量

    148516
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • Power
    +关注

    关注

    1

    文章

    496

    浏览量

    67396
  • 函数
    +关注

    关注

    3

    文章

    3882

    浏览量

    61310
收藏 人收藏

    评论

    相关推荐

    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

    请问TIMx有哪些主要功能

    TIMx简介TIMx主要功能
    发表于 11-09 08:56

    MusrLicManage的主要功能

    MusrLicManage简介MusrLicManage主要功能
    发表于 12-16 07:22

    ECC是什么?有什么主要功能

    ECC是什么?有什么主要功能
    发表于 06-21 07:00

    电池管理系统的主要功能包括哪些

    电池管理系统(BATTERY MANAGEMENT SYSTEM),俗称电池保姆或电池管家,是连接车载动力电池和电动汽车的重要纽带,其主要功能包括:电池物理参数实时监测;电池状态估计;在线诊断与预警
    发表于 09-08 07:17

    网卡实现主要功能是什么

    从介质访问控制方法的角度局域网可分为哪几类?以太网交换机是根据什么去转发数据帧的?网卡实现主要功能是什么?
    发表于 10-20 06:24

    DC的主要功能或者主要作用是什么

    什么是DC?DC能接受多少种输入格式?DC的主要功能或者主要作用是什么?如何配置DC?
    发表于 10-20 07:02

    中断系统的主要功能是什么

    51单片机各个引脚功能IO口引脚:中断系统的主要功能:处理随机突发事件中断系统结构:什么是中断系统:数据的输入/输出传送方式:中断传送方式特点:51系统允许的5个中断源:51单片机中断系统内部结构
    发表于 12-01 08:02

    romIP Core主要功能是什么

    FPGA21 嵌入式块Ram应用之Rom(Read only memory)模块名称: romIP Core主要功能 :调用内部的资源,实现只读功能实验目的 :了解这些芯片专用硬件资源的情况下,将其
    发表于 12-27 08:13

    bios的主要功能

    本视频主要详细介绍了bios的主要功能,分别是BIOS系统设置程序、POST上电自检、BIOS系统启动自举程序、硬件IO和中断服务。
    的头像 发表于 03-28 15:10 6726次阅读

    叶片泵有什么主要功能

    鸿承机电:深圳力士乐叶片泵有什么主要功能
    发表于 11-26 15:52 2927次阅读

    直线导轨的主要功能

    直线导轨的主要功能
    的头像 发表于 07-26 17:42 735次阅读
    直线导轨的<b class='flag-5'>主要功能</b>

    滤波器的主要功能和作用

    滤波器的主要功能和作用是处理信号,根据特定的频率响应特性对信号进行频率选择、增强或抑制。以下是滤波器的主要功能和作用。
    的头像 发表于 10-27 11:16 1411次阅读

    bms主要功能有哪些

    、储能系统等新能源领域的关键部件,其主要功能是对电池组进行实时监控、保护和管理,以保证电池组的安全、稳定和高效运行。本文将对BMS的主要功能进行详细介绍。 数据采集:BMS通过传感器对电池组的电压、电流、温度等关键参数进行实时采集,以便对电池组的工作状态进行全面了解。这些
    的头像 发表于 01-05 18:09 4464次阅读
    bms<b class='flag-5'>主要功能</b>有哪些