AOAC唤醒方法

描述

  • SSDT-DeepIdle 补丁可以使机器进入深度空闲状态,延长机器待机时间。但同时也会导致唤醒机器比较困难,需要采取特殊方法来唤醒机器。有关SSDT-DeepIdle 方面的内容参见《电源空闲管理》。
  • 本方法 通过定制补丁协助 电源按键 自动点亮屏幕。

唤醒方法:电源按键

唤醒原理简述

  • 一般情况下, 电源按键 能够唤醒机器。但有些时候,机器被唤醒后的状态并不完整,表现为:除了屏幕不亮,其他部件都能正常工作。这表明机器已经进入了 S0 状态。这种情况下,只要在 LPCB 设备下添加 _PS0 方法,并且在_PS0 方法里添加符合 PNP0C0D唤醒条件 的内容,即可自动点亮屏幕。
  • 建议同时使用 _PS0_PS3 方法。

补丁示例

  • SSDT-PCI0.LPCB-Wake-AOAC

    ...
    Scope (_SB.PCI0.LPCB)
    {
        If (_OSI ("Darwin"))
        {
            Method (_PS0, 0, Serialized)
            {
                \_SB.PCI0.LPCB.H_EC._Q0D() /* 小新PRO13开盖方法 */
                /*
                 * 定制内容:
                 * 依据《附件》的《PNP0C0D唤醒条件》,制作适合于自己的开盖补丁
                 * 或者使用通用开盖补丁
                 */
                \_SB.PCI0.LPCB.H_EC._Q0A() /* 更新电源数据 */
            }
            Method (_PS3, 0, Serialized)
            {
            }
        }
    }
    ...
    

    说明:

    1. _SB.PCI0.LPCB.H_EC._Q0D 为 小新PRO 开盖方法。如果使用通用开盖补丁,将 _PS0 部分替换为以下内容,并同时使用 SSDT-LIDpatch-AOAC ,见后文。

      ...
      Method (_PS0, 0, Serialized)
      {
          \_SB.PCI0.LPCB.H_EC.LID0.AOAC = 1 /* 满足 PNP0C0D唤醒条件 之一 */
          Notify (\_SB.PCI0.LPCB.H_EC.LID0, 0x80) /* 满足 PNP0C0D唤醒条件 之二 */
          Sleep (200) /* 延时200 */
          \_SB.PCI0.LPCB.H_EC.LID0.AOAC = 0 /* 恢复原始状态 */
          \_SB.PCI0.LPCB.H_EC._Q0A() /* 更新电源数据 */
      }
      ...
      
    2. _SB.PCI0.LPCB.H_EC._Q0A 为 小新PRO 更新电源数据方法。更新电源数据 详细内容见后文。

  • SSDT-LIDpatch-AOAC ——通用开盖补丁

    当无法或者很难找到适合于自己的定制方法时,使用通用开盖补丁。

    注意1:通用开盖补丁应和 SSDT-PCI0.LPCB-Wake-AOAC 一同使用。

    注意2:补丁里的设备名称、路径应与 ACPI 原始名称、路径一致。补丁要求的更名在文件的注释里。

  • 更新电源数据

    AOAC 睡眠期间,如果改变电源状态(比如,在睡眠期间拔掉或者插入电源)有可能导致唤醒后电源图标无法更新。出现此问题可以采用下列方法:

    • 查找电源设备( _HID = ACPI0003 )名称和路径,按电源名称搜索、记录包涵 Notify (***电源名称, 0x80)Method 。将这个 Method 添加到 SSDT-PCI0.LPCB-Wake-AOAC 中,参考补丁示例。
    • Notify (***电源名称, 0x80) 可能存在于多个 Method 之中,这必须通过《ACPIDebug》方法加以确认。确认方法:对插、拔电源有响应的 Method 就是我们需要的。

附件

PNP0C0D唤醒条件:

  • _LID 返回 One_LIDPNP0C0D 设备当前状态
  • 执行 Notify(***.LID0, 0x80)LID0PNP0C0D 设备名称

results matching ""

    No results matching ""