编写适用于 Oracle® Solaris 11.2 的设备驱动程序

退出打印视图

更新时间: 2014 年 9 月
 
 

电源管理控制流程

Figure 12–1说明了电源管理框架中的控制流程。

完成组件活动后,驱动程序可以调用 pm_idle_component(9F) 将该组件标记为空闲。如果组件在其阈值时间内一直处于空闲状态,则框架可以将该组件的能耗降低到下一个较低级别。框架调用 power(9E) 函数将组件的能耗设置为支持的下一个较低电源级别(如果存在较低级别)。当组件处于繁忙状态时,驱动程序的 power(9E) 函数应拒绝任何降低该组件电源级别的尝试。在转换到较低级别之前,power(9E) 函数应保存可能在转换过程中丢失的任何状态。

需要较高级别的组件时,驱动程序将调用 pm_busy_component(9F)。此调用将阻止框架进一步降低能耗,然后针对组件调用 pm_raise_power(9F)。在对 pm_raise_power(9F) 的调用返回之前,框架接着调用 power(9E) 以提高组件的能耗。驱动程序的 power(9E) 代码必须恢复在较低级别中丢失、但在较高级别中需要的任何状态。

分离某个驱动程序时,该驱动程序应针对每个组件调用 pm_lower_power(9F),以将其能耗降低到最低级别。在对 pm_lower_power(9F) 的调用返回之前,框架可以随后调用驱动程序的 power(9E) 例程以降低组件的能耗。

图 12-1  电源管理概念状态图

image:图中显示了电源管理例程中的控制流。