pm(2)_启动suspend 源码分析

上层启动suspend流程,如果在suspend过程中没有wakeup event,则进入suspend

  1. 将现在的wakeup_count记录下来
    用于判断是否新增wakeup events
  2. 启动suspend流程
    如果suspend过程中,新增wakeup events,则停止suspend

源码分析

1
2
3
4
5
6
7
8
9
10
11
12

do {
ret = read(&cnt, "/sys/power/wakeup_count");
if (ret) {
ret = write(cnt, "/sys/power/wakeup_count");
pm_save_wakeup_count(val)
saved_count = count; // 将处理完的wakeup events总数存放在saved_count里
} else
countine;
} while (!ret);
// 启动suspend
write("mem", "/sys/power/state");