10.2.2.10. _BPT(电池功率阈值)
此可选对象可以出现在电池设备之下。OSPM 必须先读取 _BPC 以确定平台固件中的供电能力阈值支持情况,然后调用此方法以相应地对阈值进行编程。如果平台不支持电池峰值功率阈值,则命名空间中不应包含此方法。
OSPM 可以调用此对象来设置相对电池峰值功率能力变化阈值。当燃料计中的值变化量大于或等于上次传递给 _BPT 的参数时,必须发出通知。例如,如果上次传递给 _BPT 的阈值为 250mW 且 ID 为 0x1(瞬时峰值功率),则当电池瞬时峰值供电能力自上次设置阈值以来变化了 250mW 或更多时,平台必须生成一个 GPE。SCI 中断的 AML 处理程序应发出 Notify (<battery_device>, 0x83)。这将导致 OSPM 重新求值 _BPS 以获取当前电池供电能力,并且可能调用 _BPT 来设置新的阈值,或针对相同的相对阈值重新启用阈值越界事件。
OSPM 根据电池的供电能力和功率控制算法的要求,为电池设备确定适当的阈值。瞬时峰值功率或可持续峰值功率的上限可在电池荷电状态为 100% 时通过 _BPS 查询。如果电池供电能力用于调整系统峰值性能,则应采用较低的阈值。如果其用于故障安全保护,则可以使用较高的阈值。
OSPM 在通过 _BPT 编程功率阈值之前,会先通过 _BPC 检查固件的功率阈值支持能力。所选择的功率阈值 ID 必须得到平台固件支持。如果平台固件不支持电池瞬时峰值功率的功率阈值,则通过 _BPT 设置瞬时峰值功率阈值将被平台固件忽略。固件应将返回值设置为 0x00000004,以指示不支持该阈值请求。如果阈值 ID 匹配且固件能够处理该请求,则返回值应为 0x00000000。否则,应设置适当的返回值。
参数: (3)
Arg0 – 修订版本,Integer。对于本版本规范,此版本为 1。
Arg1 – 阈值 ID,Integer:
0:清除所有阈值触发点
1:设置瞬时峰值功率阈值
2:设置可持续峰值功率阈值
Arg2 – 阈值,Integer。该值的单位为 mW 或 mA,取决于 _BIX 返回的功率单位字段,用于设置阈值。值为 0 表示禁用所选阈值。任一阈值的值都不得大于 _BPC 报告的最大值。
返回值:
一个 Integer,包含操作状态:
0x00000000 – 成功
0x00000001 – 失败,阈值无效
0x00000002 – 失败,硬件超时
0x00000003 – 失败,未知硬件错误
0x00000004 – 失败,不支持的阈值类型
0x00000005 – 失败,不支持的修订版本
0x00000006 及以上 - 保留