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

退出打印视图

更新时间: 2014 年 9 月
 
 

电源管理接口的更改

在 Solaris 8 发行版之前,设备的电源管理不是自动的。开发者必须为要管理其电源的每个设备在 /etc/power.conf 中添加一项。框架假定所有设备都只支持两个电源级别:0 和标准能耗。

电源假定所有其他组件对组件 0 具有隐式相关性。当组件 0 更改为级别 0 时,使用 DDI_PM_SUSPEND 命令调用驱动程序的 detach(9E) 来保存硬件状态。当组件 0 的级别 0 发生更改时,使用命令 DDI_PM_RESUME 调用 attach(9E) 例程来恢复硬件状态。

以下接口和命令已过时,现在仍支持它们是为了适于采用二进制的场合:

  • ddi_dev_is_needed(9F)

  • pm_create_components(9F)

  • pm_destroy_components(9F)

  • pm_get_normal_power(9F)

  • pm_set_normal_power(9F)

  • DDI_PM_SUSPEND

  • DDI_PM_RESUME

从 Solaris 8 发行版开始,如果启用了 autopm,则导出 pm-components 属性的设备将自动使用电源管理。

现在,框架可以通过 pm-components 属性了解每个设备支持的电源级别。

框架对设备不同组件之间的相关性不会作出任何假设。更改电源级别时,设备驱动程序负责根据需要保存并恢复硬件状态。

通过这些更改,电源管理框架可以处理新兴的设备技术。现在,电源管理可以节省更多的电。框架可以自动检测哪些设备能够省电。框架可以使用设备的中间能耗状态。现在,系统可以实现节能目标,而无需关闭整个系统的电源,也无需使用任何功能。

表 12-1  电源管理界面
已删除的接口
等效接口
pm_create_components(9F)
pm_set_normal_power(9F)
pm_destroy_components(9F)
pm_get_normal_power(9F)
ddi_dev_is_needed(9F)
DDI_PM_SUSPEND
DDI_PM_RESUME