Device (PTID)
{
Name (CADR, Zero)
Name (WLEN, Zero)
Name (RLEN, Zero)
Name (CAMD, Zero)
Name (OBUF, Buffer (0x10) {})
Name (IBUF, Buffer (0x0F) {})
Name (ERRN, Zero)
Name (_HID, EisaId ("INT340E")) // _HID: Hardware ID
Name (_CID, EisaId ("PNP0C02")) // _CID: Compatible ID
Name (IVER, 0x00030000)
Name (TSDL, Package (0x04)
{
Zero,
"CPU Temperature",
0x05,
"PCH Temperature"
})
Name (TMPV, Package (0x02)
{
0x80000000,
0x80000000
})
Name (PSDL, Package (0x04)
{
Zero,
"CPU Power",
One,
"Gfx Power"
})
Name (PWRV, Package (0x02)
{
0x80000000,
0x80000000
})
Name (OSDL, Package (0x06)
{
0x04,
"Fan RPM",
"RPM",
0x0C,
"Battery Capaciy",
"mAh"
})
Name (OSDV, Package (0x02)
{
0x80000000,
0x80000000
})
Method (TSDD, 0, NotSerialized)
{
Name (TMPC, Zero)
Store (^^PCI0.LPCB.EC0.ECPU, TMPC)
Store (TMPC, Index (TMPV, Zero))
Store (^^PCI0.LPCB.EC0.ECPU, TMPC)
Store (TMPC, Index (TMPV, One))
Return (TMPV)
}
Method (PWRG, 0, NotSerialized)
{
Return (Ones)
}
Method (PSDD, 0, NotSerialized)
{
Name (PWRC, Zero)
Store (PWRG (), PWRC)
Store (PWRC, Index (PWRV, Zero))
Store (PWRG (), PWRC)
Store (PWRC, Index (PWRV, One))
Return (PWRV)
}
Method (OSDG, 0, NotSerialized)
{
Return (Ones)
}
Method (OSDD, 0, NotSerialized)
{
Name (OSDC, Zero)
Store (OSDG (), OSDC)
Store (OSDC, Index (OSDV, Zero))
Store (OSDG (), OSDC)
Store (OSDC, Index (OSDV, One))
Return (OSDV)
}
Method (SDSP, 0, NotSerialized)
{
Return (0x0A)
}
Name (MBOX, Buffer (0x1A) {})
Name (PADA, Package (0x0A)
{
One,
0xFFFFFFFF,
0xFFFFFFFF,
0x1A,
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF
})
Name (PADD, Package (0x0A)
{
0x02,
0x0271,
0x0270,
0x1A,
0x62,
0x63,
0x60,
0x61,
0x65,
0x64
})
Method (PADT, 0, NotSerialized)
{
And (^^PCI0.LPCB.EC0.PBSY, 0x80, Local0)
If (LEqual (Local0, Zero))
{
Return (PADD)
}
Return (PADA)
}
Method (RPMD, 0, NotSerialized)
{
Store (Zero, Local0)
Store (0x0A, Local1)
Add (WLEN, Local1, Local1)
While (LLess (Local0, RLEN))
{
Store (DerefOf (Index (IBUF, Local0)), Index (MBOX, Local1))
Add (One, Local0, Local0)
Add (One, Local1, Local1)
}
Return (MBOX)
}
Method (WPMD, 1, NotSerialized)
{
If (LNotEqual (SizeOf (Arg0), 0x1A))
{
Return (0xFFFFFFFF)
}
Store (Zero, Local0)
While (LLess (Local0, 0x1A))
{
Store (DerefOf (Index (Arg0, Local0)), Index (MBOX, Local0))
Add (One, Local0, Local0)
}
Store (DerefOf (Index (Arg0, 0x06)), CADR)
Store (DerefOf (Index (Arg0, 0x07)), WLEN)
Store (DerefOf (Index (Arg0, 0x08)), RLEN)
Store (DerefOf (Index (Arg0, 0x09)), CAMD)
Name (CUNT, Zero)
Store (Zero, CUNT)
Store (0x0A, Local0)
While (LLess (CUNT, WLEN))
{
Store (DerefOf (Index (Arg0, Local0)), Index (OBUF, CUNT))
Add (CUNT, One, CUNT)
Add (Local0, One, Local0)
}
Return (Zero)
}
Name (CYCT, Zero)
Method (ISPC, 0, NotSerialized)
{
Store (DerefOf (Index (MBOX, 0x03)), CYCT)
ShiftLeft (CYCT, 0x08, CYCT)
Add (CYCT, DerefOf (Index (MBOX, 0x02)), CYCT)
ShiftLeft (CYCT, 0x08, CYCT)
Add (CYCT, DerefOf (Index (MBOX, One)), CYCT)
ShiftLeft (CYCT, 0x08, CYCT)
Add (CYCT, DerefOf (Index (MBOX, Zero)), CYCT)
If (LGreaterEqual (CYCT, One))
{
Store (DerefOf (Index (MBOX, 0x04)), Local0)
Multiply (Local0, 0x0A, Local0)
Sleep (Local0)
}
Store (^^PCI0.LPCB.EC0.PECI (CADR, WLEN, RLEN, CAMD, OBUF, IBUF, ERRN), Local0)
If (LEqual (Local0, One))
{
If (LGreater (CYCT, Zero))
{
Subtract (CYCT, One, CYCT)
And (CYCT, 0xFF, Index (MBOX, Zero))
And (CYCT, 0xFF00, Local0)
ShiftRight (Local0, 0x08, Index (MBOX, One))
And (CYCT, 0x00FF0000, Local0)
ShiftRight (Local0, 0x10, Index (MBOX, 0x02))
And (CYCT, 0xFF000000, Local0)
ShiftRight (Local0, 0x18, Index (MBOX, 0x03))
}
}
}
Method (ENPC, 0, NotSerialized)
{
Store (Zero, CYCT)
}
Method (RPCS, 0, NotSerialized)
{
Name (TPCS, Zero)
If (LGreater (CYCT, Zero))
{
Store (One, TPCS)
ISPC ()
}
Else
{
Store (Zero, TPCS)
}
Return (TPCS)
}
Method (RPEC, 0, NotSerialized)
{
Name (TPEC, Zero)
Store (ERRN, TPEC)
Return (TPEC)
}
}