设备电源管理

zx_device_ops_t suspend 钩子在自身之前进行排序(例如,如果发生挂起到 D1 的请求,并且在执行该请求时,发生挂起到 D2 的请求,则第一个钩子会在后者开始之前完成)。该顺序也在 Resume 钩子之前排序。

set_performance_state 钩子在自身之前进行排序。它对挂起/恢复钩子没有特定顺序。驱动程序从 set_performance_state 钩子成功返回后,电源管理器会假定,只要设备处于工作状态,设备就会以请求的性能状态运行。由于钩子只在驱动程序主机的主线程上执行,因此多个请求不会并发执行。 如果成功,out_state 和 requested_state 是相同的。如果设备处于工作状态,性能状态将立即更改为 requested_state。如果设备处于非工作状态,则每当设备转换为工作状态时,性能状态将为 requested_state。如果失败,out_state 将具有设备可以进入的状态。

configure_autosuspend 钩子位于其自身之前,用于配置设备是否可以根据其空闲性自行挂起或恢复。系统会以设备预计处于挂起状态时的最深休眠状态调用钩子。如果整个系统被挂起到休眠状态,即使配置了自动挂起,驱动程序应该也会调用 suspend 钩子。如果配置了自动挂起,则不支持选择性地挂起设备。