Method (_WAK, 1, NotSerialized) // _WAK: Wake
{
If (LOr (LEqual (Arg0, 0x00), LGreaterEqual (Arg0, 0x05)))
{
Return (WAKI)
}
If (CondRefOf(\RMCF.SSTF))
{
If (\RMCF.SSTF)
{
// call _SI._SST to indicate system "working"
// for more info, read ACPI specification
External(\_SI._SST, MethodObj)
If (3 == Arg0 && CondRefOf(\_SI._SST)) { \_SI._SST(1) }
}
}
Store (0x00, \SPS)
Store (0x00, \_SB.PCI0.LPC.EC.HCMU)
\_SB.PCI0.LPC.EC.EVNT (0x01)
\_SB.PCI0.LPC.EC.HKEY.MHKE (0x01)
\_SB.PCI0.LPC.EC.FNST ()
\UCMS (0x0D)
Store (0x00, \LIDB)
\_SB.PCI0.IGPU.VRSI ()
If (LEqual (Arg0, 0x01))
{
Store (\_SB.PCI0.LPC.EC.HFNI, \FNID)
}
If (LEqual (Arg0, 0x03))
{
\NVSS (0x00)
Store (\_SB.PCI0.LPC.EC.AC._PSR (), \PWRS)
If (\OSC4)
{
\PNTF (0x81)
}
If (LNotEqual (\ACST, \_SB.PCI0.LPC.EC.AC._PSR ()))
{
\_SB.PCI0.LPC.EC.ATMC ()
}
If (\SCRM)
{
Store (0x07, \_SB.PCI0.LPC.EC.HFSP)
If (\MTAU)
{
Store (0x03E8, Local2)
While (LAnd (\_SB.PCI0.LPC.EC.PIBS, Local2))
{
Sleep (0x01)
Decrement (Local2)
}
If (Local2)
{
Store (0x01, \_SB.PCI0.LPC.EC.PLSL)
Store (\MTAU, \_SB.PCI0.LPC.EC.PLTU)
Store (\PL1L, \_SB.PCI0.LPC.EC.PLLS)
Store (\PL1M, \_SB.PCI0.LPC.EC.PLMS)
}
}
}
Store (0x00, \IOEN)
Store (0x00, \IOST)
If (LEqual (\ISWK, 0x01))
{
If (\_SB.PCI0.LPC.EC.HKEY.DHKC)
{
\_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6070)
}
}
If (\VIGD)
{
\_SB.PCI0.IGPU.GLIS (\_SB.LID._LID ())
If (\WVIS)
{
\VBTD ()
}
}
ElseIf (\WVIS)
{
\_SB.PCI0.IGPU.GLIS (\_SB.LID._LID ())
\VBTD ()
}
\VCMS (0x01, \_SB.LID._LID ())
\AWON (0x00)
If (\CMPR)
{
Notify (\_SB.SLPB, 0x02)
Store (0x00, \CMPR)
}
If (LOr (\USBR, \_SB.PCI0.XHC.XRST))
{
If (LOr (LEqual (\XHC, 0x02), LEqual (\XHC, 0x03)))
{
Store (0x00, Local0)
And (\_SB.PCI0.XHC.PR3, 0xFFFFFFC0, Local0)
Or (Local0, \_SB.PCI0.XHC.PR3M, \_SB.PCI0.XHC.PR3)
Store (0x00, Local0)
And (\_SB.PCI0.XHC.PR2, 0xFFFF8000, Local0)
Or (Local0, \_SB.PCI0.XHC.PR2M, \_SB.PCI0.XHC.PR2)
}
}
If (LNotEqual (\ISCT, 0x00))
{
If (\VIGD)
{
If (And (\_SB.PCI0.IGPU.TCHE, 0x0100))
{
If (And (\_SB.IAOE.GAOS (), 0x01))
{
If (And (\_SB.IAOE.GSWR (), 0x02))
{
Store (Or (And (\_SB.PCI0.IGPU.STAT, Not (0x03)), 0x01), \_SB.PCI0.IGPU.STAT)
Store (0x01, \_SB.PCI0.LPC.EC.SKEM)
}
}
}
}
}
}
If (LEqual (Arg0, 0x04))
{
\NVSS (0x00)
Store (0x00, \_SB.PCI0.LPC.EC.HSPA)
Store (\_SB.PCI0.LPC.EC.AC._PSR (), \PWRS)
If (\OSC4)
{
\PNTF (0x81)
}
\_SB.PCI0.LPC.EC.ATMC ()
If (\SCRM)
{
Store (0x07, \_SB.PCI0.LPC.EC.HFSP)
If (\MTAU)
{
Store (0x03E8, Local2)
While (LAnd (\_SB.PCI0.LPC.EC.PIBS, Local2))
{
Sleep (0x01)
Decrement (Local2)
}
If (Local2)
{
Store (0x01, \_SB.PCI0.LPC.EC.PLSL)
Store (\MTAU, \_SB.PCI0.LPC.EC.PLTU)
Store (\PL1L, \_SB.PCI0.LPC.EC.PLLS)
Store (\PL1M, \_SB.PCI0.LPC.EC.PLMS)
}
}
}
If (LNot (\NBCF))
{
If (\VIGD)
{
\_SB.PCI0.LPC.EC.BRNS ()
}
Else
{
\VBRC (\BRLV)
}
}
Store (0x00, \IOEN)
Store (0x00, \IOST)
If (LEqual (\ISWK, 0x02))
{
If (\_SB.PCI0.LPC.EC.HKEY.DHKC)
{
\_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6080)
}
}
If (\_SB.PCI0.XHC.XRST)
{
If (LOr (LEqual (\XHC, 0x02), LEqual (\XHC, 0x03)))
{
Store (0x00, Local0)
And (\_SB.PCI0.XHC.PR3, 0xFFFFFFC0, Local0)
Or (Local0, \_SB.PCI0.XHC.PR3M, \_SB.PCI0.XHC.PR3)
Store (0x00, Local0)
And (\_SB.PCI0.XHC.PR2, 0xFFFF8000, Local0)
Or (Local0, \_SB.PCI0.XHC.PR2M, \_SB.PCI0.XHC.PR2)
}
}
}
If (XOr (\_SB.PCI0.EXP6.PDS, \_SB.PCI0.EXP6.PDSF))
{
Store (\_SB.PCI0.EXP6.PDS, \_SB.PCI0.EXP6.PDSF)
Notify (\_SB.PCI0.EXP6, 0x00)
}
\_SB.PCI0.LPC.EC.BATW (Arg0)
\_SB.PCI0.LPC.EC.BWAK (Arg0)
\_SB.PCI0.LPC.EC.HKEY.WGWK (Arg0)
Notify (\_TZ.THM0, 0x80)
\VSLD (\_SB.LID._LID ())
If (\VIGD)
{
\_SB.PCI0.IGPU.GLIS (\_SB.LID._LID ())
}
ElseIf (\WVIS)
{
\_SB.PCI0.IGPU.GLIS (\_SB.LID._LID ())
}
If (LLess (Arg0, 0x04))
{
If (LOr (And (\RRBF, 0x02), And (B1B2(\_SB.PCI0.LPC.EC.HWC0,\_SB.PCI0.LPC.EC.HWC1), 0x02)))
{
ShiftLeft (Arg0, 0x08, Local0)
Store (Or (0x2013, Local0), Local0)
\_SB.PCI0.LPC.EC.HKEY.MHKQ (Local0)
}
}
If (LEqual (Arg0, 0x04))
{
Store (0x00, Local0)
Store (\CSUM (0x00), Local1)
If (LNotEqual (Local1, \CHKC))
{
Store (0x01, Local0)
Store (Local1, \CHKC)
}
Store (\CSUM (0x01), Local1)
If (LNotEqual (Local1, \CHKE))
{
Store (0x01, Local0)
Store (Local1, \CHKE)
}
If (Local0)
{
Notify (\_SB, 0x00)
}
}
Store (Zero, \RRBF)
Return (WAKI)
}
}