目录
2.3 struct platform_suspend_ops
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