参照 http://blog.youkuaiyun.com/tommy_wxie/article/details/7208633
framework:
wm 对power button的处理 gotoSleep
内核部分:
注册的设备list:(drivers/base/power/main.c)
device_pm_add
list_add_tail(&dev->power.entry, &dpm_list);
drivers/base/power/main.c
device_prepare
dpm_prepare
dpm_suspend_start
^
kernel/power/suspend.c
dpm_suspend_start 关闭注册的设备
suspend_devices_and_enter
enter_state
pm_suspend
^
kernel/power/wakelock.c
pm_suspend