蛋糕,我看了下我的dsdt,里面关于这个方法的返回值已经是正确的了,但是在10.11.6还是不正确,10.13.6到时正常
Device (AC)
{
Name (_HID, "ACPI0003") // _HID: Hardware ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})
Name (ACFG, One)
Name (IGNR, Zero)
Name (RPPC, Zero)
Name (RQTM, Zero)
Name (CTMS, 0xA55A)
Name (GPSF, Zero)
Name (PSSN, Zero)
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
Store (Zero, IGNR)
Store (Zero, RPPC)
Store (Zero, RQTM)
Store (0xA55A, CTMS)
Store (Zero, PSSN)
}
Store (Arg0, Local5)
Store (Zero, Local4)
If (LAnd (\_TZ.TZ0.PPFG, LEqual (And (Local5, 0x80000000), Zero)))
{
Store (0x02, Local7)
}
ElseIf (^^PCI0.LPCB.EC.B15C)
{
Store (0x02, Local7)
}
ElseIf (^^PCI0.LPCB.EC.SLFG)
{
Store (One, Local7)
}
Else
{
Switch (And (OEMF, 0x06))
{
Case (Zero)
{
Store (Zero, Local7)
}
Case (0x02)
{
Store (One, Local7)
}
Case (0x04)
{
If (ACFG)
{
Store (Zero, Local7)
}
Else
{
Store (One, Local7)
}
}
Default
{
Store (Zero, Local7)
}
}
}
If (^^PCI0.LPCB.EC.ECTB)
{
Store (One, Local4)
}
Else
{
}
If (And (\_PR.CFGD, One))
{
If (LEqual (And (PSSN, 0xFFFF0000), 0x80000000))
{
And (PSSN, 0xFFFF, Local2)
}
Else
{
Store (\_PR.CPU0._PSS, Local6)
Store (SizeOf (Local6), Local2)
Store (Or (0x80000000, Local2), PSSN)
}
Store (Local2, Local6)
Switch (ToInteger (Local7))
{
Case (Zero)
{
Store (Zero, Local0)
}
Case (One)
{
If (LGreater (Local2, 0x02))
{
If (And (\_PR.CFGD, 0x0100))
{
Decrement (Local2)
}
If (LGreater (Local2, 0x02))
{
Store (Local2, Local3)
ShiftRight (Local2, One, Local0)
Increment (Local0)
Decrement (Local3)
If (LEqual (Local3, Local0))
{
Decrement (Local0)
}
If (And (\_PR.CFGD, 0x0100))
{
Increment (Local0)
}
}
Else
{
Store (Local2, Local0)
}
}
ElseIf (Local2)
{
Decrement (Local2)
Store (Local2, Local0)
}
Else
{
Store (Zero, Local0)
}
}
Case (0x02)
{
Decrement (Local2)
Store (Local2, Local0)
}
Default
{
Store (Zero, Local0)
}
}
}
If (And (\_PR.CFGD, One))
{
If (And (Local5, 0x60000000))
{
And (Local5, 0xFFFF, Local1)
If (LAnd (LGreaterEqual (Local1, Local0), LLess (Local1, Local6)))
{
Store (Local1, Local0)
}
If (And (Local5, 0x40000000))
{
Store (Or (Local1, 0x80000000), RPPC)
}
}
ElseIf (And (RPPC, 0x80000000))
{
And (RPPC, 0xFFFF, Local1)
If (LAnd (LGreaterEqual (Local1, Local0), LLess (Local1, Local6)))
{
Store (Local1, Local0)
}
}
Store (Local0, \_PR.CPU0._PPC)
Store (One, GPEC)
If (\_PR.CPU0._PPC)
{
Store (One, Local1)
}
Else
{
Store (Zero, Local1)
}
If (And (RQTM, 0x80000000))
{
Or (And (RQTM, 0x03), Local1, Local1)
}
If (And (Local5, 0x18000000))
{
Or (And (Local5, 0x03), Local1, Local1)
If (And (Local5, 0x10000000))
{
Store (Or (And (Local5, 0x03), 0x80000000), RQTM)
}
}
If (Local4)
{
Store (0x03, Local1)
}
If (LEqual (And (\_PR.CFGD, 0x0100), Zero))
{
And (Local1, One, Local1)
}
If (LNotEqual (Local1, CTMS))
{
Store (Local1, PRM1)
Store (0x08, PRM0)
Store (0xE0, SSMP)
Store (Local1, CTMS)
}
}
Else
{
Switch (ToInteger (Local7))
{
Case (Zero)
{
Store (0x03, Local0)
}
Case (One)
{
Store (0x02, Local0)
}
Case (0x02)
{
Store (0x02, Local0)
}
Default
{
Store (0x03, Local0)
}