linux电源管理-pm core主流程

目录

1、模块主要功能介绍

2、主要涉及的数据类型

2.1 suspend_state_t

2.2 struct suspend_stats 

2.3 struct platform_suspend_ops

3、软件处理流程

3.1 suspend流程

3.2 唤醒流程

4、PM Core主要函数实现

4.1 pm_suspend

4.2 enter_state

4.3 suspend_devices_and_enter

4.4 suspend_enter

5、补充说明


1、模块主要功能介绍

       PM Core,SR(suspend/resume)主流程,顾名思义就是把Linux Kernel中各个低功耗模块组合在一起,成为睡眠和唤醒流程的主干道,我们称之为SR主流程。其在内核中特性的开关主要受以下宏控制:

CONFIG_PM、CONFIG_SUSPEND、CONFIG_PM_AUTOSLEEP、CONFIG_FREEZER、CONFIG_PM_SLEEP

相关代码主要在kernel/power/目录下

kernel/power/main.c     ----提供用户态接口,以及pm notifier相关接口
kernel/power/suspend.c  ----Suspend功能的主流程
kernel/power/console.c  ----Suspend过程中对控制台的处理逻辑
kernel/power/process.c  ----Suspend过程中对进程的处理逻辑

2、主要涉及的数据类型

2.1 suspend_state_t

       数据类型定义在include/linux/suspend.h中,表示低功耗要进入的状态,在kernel中主要有4种状态,如下

typedef int __bitwise suspend_state_t;

#define PM_SUSPEND_ON		((__force suspend_state_t) 0)
#define PM_SUSPEND_TO_IDLE	((__force suspend_state_t) 1)
#define PM_SUSPEND_STANDBY	((__force suspend_state_t) 2)
#define PM_SUSPEND_MEM		((__force suspend_state_t) 3)
#define PM_SUSPEND_MIN		PM_SUSPEND_TO_IDLE
#define PM_SUSPEND_MAX		((__force suspen
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值