- 标准linu休眠和唤醒机制分析(一)
- 标准linu休眠和唤醒机制分析(二)
- 标准linu休眠和唤醒机制分析(三)
- 标准linu休眠和唤醒机制分析(四)
- 新版linux系统设备架构中关于电源管理方式的变更
- Android在标准linux基础上对休眠唤醒的实现(一)
- Android在标准linux基础上对休眠唤醒的实现(二)
- Android在标准linux基础上对休眠唤醒的实现(三)
与电源相关的驱动文件:
ll /sys/power -rw-r--r-- root root 4096 2014-06-05 13:27 pm_async -rw-r--r-- root root 4096 2014-06-05 13:27 pm_freeze_timeout -rw-rw---- system system 4096 2014-06-05 13:30 state -r--r--r-- root root 4096 2014-06-05 13:27 wait_for_fb_sleep -r--r--r-- root root 4096 2014-06-05 13:27 wait_for_fb_wake -rw-rw---- radio system 4096 2014-06-05 13:31 wake_lock -rw-rw---- radio system 4096 2014-06-05 13:27 wake_unlock -rw-r--r-- system system 4096 2014-06-05 13:27 wakeup_count |
文件作用说明:
文件 | 读 | 写 |
state | 返回有效状态列表 | 改变电源状态 |
wake_lock | 返回处于活动状态的锁 | 加锁,输入格式为:<name> [timeout],如果没有找到指定名称的锁,将创建一个 |
wake_lock | 返回处于非活动状态的锁 | 解锁,输入格式为:<name>,解锁不会删除,而是放到非活动锁列表 |
wait_for_fb_sleep | 阻塞直到frame_buffer开始进入early_sleep | |
wait_for_fb_wake | 阻塞直到frame_buffer从early_sleep唤醒 |
特别提一下frame_buffer的early_sleep实现机制。驱动层注册了frame_buffer的early_sleep回调,但是并没有实现frame_buffer的关闭,而是提供一个机制通知上层。上层等待wait_for_fb_sleep,然后关闭frame_buffer,之后通过wait_for_fb_wake通知驱动层休眠完成,同时等待被唤醒,唤醒后再重新打开frame_buffer。