linux之待机流程
来源:互联网 发布:二维码解码器软件 编辑:程序博客网 时间:2024/05/02 13:17
采用wakeup source 机制,wakeup source 是一种suspend blocker,它阻碍系统进入休眠
起点:sys/power/autosleep 写入mem;off
→pm_autosleep_set_state(state) //----------------kernel/kernel/power/main.c
∣↘queue_up_suspend_work()
∣↘try_to_suspend()
∣↘pm_get_wakeup_count()//-----------判断当前是否有wakeup_lock
∣↘pm_suspend()//----------------打印开始进入suspend的时间
∣↘enter_state() [PM:suspend entry 年月日]
∣↘sys_sync(); [PM:syncying file systems …done]
∣↘suspend_prepare() //-----------all user serves suspendhere
∣↘pm_prepare_console()
∣↘pm_notifier_call_chain()
∣↘suspend_freeze_processes()
∣↘freeze_proceses()
∣↘freeze_kernel_threads()
∣↘suspend_devices_and_enter() //all extern devices supend here
∣↘suspend_ops->begin()
∣↘suspend_console() [use no_console_suspend to debug]
∣↘dpm_suspend_start()
∣↘dpm_prepare()
∣↘device_prepare
∣↘dpm_suspend()
∣↘device_suspend [pm:suspend of devicescomplete after…所有设备-----再次检查是否有wakeup_lock持有]
∣↘__device_suspend
∣↘dev->class->suspend/dev->bus->suspend---------------调用真正驱动中定义的supend函数
∣↘suspend_enter()
∣↘suspend_ops_prepare()
∣↘dpm_suspend_end()
∣↘dpm_suspend_late() [pm:latesuspend of]
∣↘dpm_suspend_noirq() [pm:noirq suspend of]
∣↘suspend_ops->prepare_late()//准备待机,进行检查
∣↘disable_nonboot_cpus() [disabling non_boot cpus…]
∣↘arch_suspend_disable_iqrs()
∣↘syscore_suspend()
∣↘suspend_ops->enter()//检查没有问题真正待机
∣↘lpm_suspend_enter() [深待机,可输出GPIO,clock, LDO信息]
∣↘lpm_enter_low_power()
∣↘msm_cpu_pm_enter_sleep()
- linux之待机流程
- linux待机流程
- Linux 3.14 待机流程分析
- Android待机流程分析
- android 待机流程
- Android待机流程分析
- Android待机流程解析
- Android 待机流程解析
- Android待机流程解析
- Android 待机流程解析
- Android待机流程分析
- Android 待机流程解析
- Android 待机流程解析
- Android 待机流程解析
- Android待机流程分析
- Android 待机流程解析
- andriod 待机 开机流程
- Android待机流程分析
- Prim Dijkstra 区别
- centos 7 dns 依赖
- Android小问题:String转换Json,以及org.json.JSONObject与org.json.JSONArray相互添加
- JAVA正则表达式:Pattern类和Mathcer类详解
- hdu 5547 Sudoku【dfs】
- linux之待机流程
- build and install everything into local directory
- Docker背后的容器管理——Libcontainer深度解析
- The device that was selected before performing this action was disconnected or has encountered a pro
- 内核与用户空间的接口procfs, sysctl, ioctl,netlink
- Intellij 家族IDE 修改变量字段快捷方式
- C++四种强制类型转换运算符的联系与区别
- suse创建的虚拟机,修改ip地址
- Java spring +quartz实现定时任务