Linux的关机流程

 今天上午看了一下我们的手机的关机流程,参考了这个IBM网站上的资料:

http://www.ibm.com/developerworks/cn/linux/embed/l-rb/index.html

想起来看关机流程的一个原因是,手机在接着充电器的时候,从Prizm关机会变成重启,而直接使用poweroff命令,则会正常关机。

Prizm走正常关机流程,调用sys.c中的sys_reboot函数,cmd传入LINUX_REBOOT_CMD_POWER_OFF,进入switch后,系统会走machine_power_off这个函数,真正的完成关机操作。

machine_power_off中会调用pm_power_off 这个函数,而这个函数已经在我们的其他模块中设置为了m_power_off = (void *)as3604_poweroff;

所以,关机的时候,最后一步会走到我们的as3604_poweroff函数。

而对于Prizm带充电器关机时重启的问题,就是在as3604_poweroff中做了设置,如果关机时充电器插着,或者PowerKey被按下,则在这里调用machine_restart()进行重启,否则关闭AS3604的各个输出,最后调用as3604_write(AS3604_RESET_CONTROL,POWER_OFF);进行完全的关机。

 

你可能感兴趣的:(linux,cmd,IBM,手机,360)