设备的suspend什么时候被调用
看一张流程图:
驱动提供的suspend、resume函数在其他不存在的时候才会被调用
– ####实验验证
如果平台提供了begin()函数
三条链表
/**
系统休眠,最终是平台提供的这个s3c_pm_enter()函数来休眠的。
一下都是第三部分 ,由平台提供的,在app冻结、设备暂停后被调用
*/
static const struct platform_suspend_ops s3c_pm_ops = {
.enter = s3c_pm_enter, //真正休眠函数,在冻结app、内核线程、暂停设备后。
.prepare = s3c_pm_prepare, //这个函数也是在暂停设备后调用的。他调用的时机 早于上面的enter函数
.finish = s3c_pm_finish,
.valid = suspend_valid_only_mem,//判断系统支不支持传入的休眠方式,比如嵌入式不支持to disk
};
下面用实验验证这几个函数被调用
平台提供的valid()函数
发送通知到驱动的时机
睡眠流程
先冻结APP、内核线程