You did not follow the guide correctly.
EC related code in _OFF:
Code:
Store (^^^LPCB.EC0.RRAM (0x0521), Local0)
And (Local0, 0xCF, Local0)
^^^LPCB.EC0.WRAM (0x0521, Local0)
^^^LPCB.EC0.WRAM (0x0520, 0x95)
^^^LPCB.EC0.WRAM (0x03A4, Zero)
^^^LPCB.EC0.WRAM (0x03A5, Zero)
That code must move to _REG.
Resulting _REG should be:
Code:
Method (_REG, 2, NotSerialized) // _REG: Region Availability
{
If (LEqual (Arg0, 0x03))
{
Store (Arg1, ECFL)
}
If (LAnd (LEqual (Arg0, 0x03), LEqual (Arg1, One)))
{
Store (^^^LPCB.EC0.RRAM (0x0521), Local0)
And (Local0, 0xCF, Local0)
^^^LPCB.EC0.WRAM (0x0521, Local0)
^^^LPCB.EC0.WRAM (0x0520, 0x95)
^^^LPCB.EC0.WRAM (0x03A4, Zero)
^^^LPCB.EC0.WRAM (0x03A5, Zero)
}
}
Note that the compiler will optimize:
Code:
Method (_REG, 2, NotSerialized) // _REG: Region Availability
{
If (LEqual (Arg0, 0x03))
{
Store (Arg1, ECFL)
}
If (LAnd (LEqual (Arg0, 0x03), LEqual (Arg1, One)))
{
Store (RRAM (0x0521), Local0)
And (Local0, 0xCF, Local0)
WRAM (0x0521, Local0)
WRAM (0x0520, 0x95)
WRAM (0x03A4, Zero)
WRAM (0x03A5, Zero)
}
}
What you wrote: "^WRAM._OFF ()" is complete nonsense.
Resulting _OFF with EC related code removed:
Code:
Method (_OFF, 0, NotSerialized) // _OFF: Power Off
{
If (LEqual (SVID, 0xFFFFFFFF))
{
Return (Zero)
}
^^^GFX0.SAVO ()
Store (One, LNKD)
While (LNotEqual (LNKS, Zero))
{
Sleep (One)
}
Store (Zero, AFE4)
Store (One, AFE5)
Store (One, LDPS)
SGPL (0x32, One, Zero)
Sleep (0x0A)
SGPL (0x36, One, Zero)
Store (Zero, ^^^GFX0.HPWR)
Return (Zero)
}
Note: I don't know why you removed the GFX0.SAVO call!
Correct _INI, calling _PS3:
Code:
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
If (LNotEqual (SVID, 0xFFFFFFFF))
{
Store (Zero, NHDA)
Sleep (0x32)
}
_PS3()
}
Make sure those are the *only* changes you make related to _OFF/_PS3/etc.