/* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20180105 (64-bit version) * Copyright (c) 2000 - 2018 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of dsdt.dat, Thu Sep 6 13:46:21 2018 * * Original Table Header: * Signature "DSDT" * Length 0x000063BC (25532) * Revision 0x01 **** 32-bit table (V1), no 64-bit math support * Checksum 0x9F * OEM ID "LENOVO" * OEM Table ID "CB-01 " * OEM Revision 0x00000001 (1) * Compiler ID "ACPI" * Compiler Version 0x00040000 (262144) */ DefinitionBlock ("", "DSDT", 1, "LENOVO", "CB-01 ", 0x00000001) { /* * iASL Warning: There were 8 external control methods found during * disassembly, but only 0 were resolved (8 unresolved). Additional * ACPI tables may be required to properly disassemble the code. This * resulting disassembler output file may not compile because the * disassembler did not know how many arguments to assign to the * unresolved methods. Note: SSDTs can be dynamically loaded at * runtime and may or may not be available via the host OS. * * To specify the tables needed to resolve external control method * references, the -e option can be used to specify the filenames. * Example iASL invocations: * iasl -e ssdt1.aml ssdt2.aml ssdt3.aml -d dsdt.aml * iasl -e dsdt.aml ssdt2.aml -d ssdt1.aml * iasl -e ssdt*.aml -d dsdt.aml * * In addition, the -fe option can be used to specify a file containing * control method external declarations with the associated method * argument counts. Each line of the file must be of the form: * External (, MethodObj, ) * Invocation: * iasl -fe refs.txt -d dsdt.aml * * The following methods were unresolved and many not compile properly * because the disassembler had to guess at the number of arguments * required for each: */ External (_SB_.APTS, MethodObj) // Warning: Unknown method, guessing 3 arguments External (_SB_.AWAK, MethodObj) // Warning: Unknown method, guessing 1 arguments External (_SB_.TPM2.PTS_, MethodObj) // Warning: Unknown method, guessing 1 arguments External (AFN4, MethodObj) // Warning: Unknown method, guessing 1 arguments External (AFN7, MethodObj) // Warning: Unknown method, guessing 1 arguments External (ALIB, MethodObj) // Warning: Unknown method, guessing 2 arguments External (MPTS, MethodObj) // Warning: Unknown method, guessing 1 arguments External (MWAK, MethodObj) // Warning: Unknown method, guessing 1 arguments OperationRegion (DBG0, SystemIO, 0x80, One) Field (DBG0, ByteAcc, NoLock, Preserve) { IO80, 8 } OperationRegion (DBG1, SystemIO, 0x80, 0x02) Field (DBG1, WordAcc, NoLock, Preserve) { P80H, 16 } OperationRegion (ACMS, SystemIO, 0x72, 0x02) Field (ACMS, ByteAcc, NoLock, Preserve) { ACMX, 8, ACMA, 8 } IndexField (ACMX, ACMA, ByteAcc, NoLock, Preserve) { Offset (0xB9), IMEN, 8 } OperationRegion (PSMI, SystemIO, 0xB0, 0x02) Field (PSMI, ByteAcc, NoLock, Preserve) { APMC, 8, APMD, 8 } OperationRegion (PMRG, SystemIO, 0x0CD6, 0x02) Field (PMRG, ByteAcc, NoLock, Preserve) { PMRI, 8, PMRD, 8 } IndexField (PMRI, PMRD, ByteAcc, NoLock, Preserve) { , 6, HPEN, 1, Offset (0x60), P1EB, 16, Offset (0xF0), , 3, RSTU, 1 } OperationRegion (GSMM, SystemMemory, 0xFED80000, 0x1000) Field (GSMM, AnyAcc, NoLock, Preserve) { Offset (0x288), , 1, CLPS, 1, Offset (0x2B0), , 2, SLPS, 2, Offset (0x3BB), , 6, PWDE, 1, Offset (0x3E4), BLNK, 2 } OperationRegion (P1E0, SystemIO, P1EB, 0x04) Field (P1E0, ByteAcc, NoLock, Preserve) { , 14, PEWS, 1, WSTA, 1, , 14, PEWD, 1 } OperationRegion (IOCC, SystemIO, 0x0400, 0x80) Field (IOCC, ByteAcc, NoLock, Preserve) { Offset (0x01), , 2, RTCS, 1 } Name (PRWP, Package (0x02) { Zero, Zero }) Method (GPRW, 2, NotSerialized) { PRWP [Zero] = Arg0 PRWP [One] = Arg1 If ((DAS3 == Zero)) { If ((Arg1 <= 0x03)) { PRWP [One] = Zero } } Return (PRWP) /* \PRWP */ } Method (SPTS, 1, NotSerialized) { If ((Arg0 == 0x03)) { BLNK = One } If (((Arg0 == 0x04) || (Arg0 == 0x05))) { BLNK = Zero } If ((Arg0 == 0x03)) { RSTU = Zero } CLPS = One SLPS = One PEWS = PEWS /* \PEWS */ } Method (SWAK, 1, NotSerialized) { BLNK = 0x03 If ((Arg0 == 0x03)) { RSTU = One } PEWS = PEWS /* \PEWS */ PWDE = One PEWD = Zero } OperationRegion (GNVS, SystemMemory, 0xBF7BBA98, 0x00000186) Field (GNVS, AnyAcc, NoLock, Preserve) { SMIF, 8, PRM0, 8, PRM1, 8, BRTL, 8, TLST, 8, IGDS, 8, LCDA, 16, CSTE, 16, NSTE, 16, CADL, 16, PADL, 16, LIDS, 8, PWRS, 8, BVAL, 32, ADDL, 16, BCMD, 8, SBFN, 8, DID, 32, INFO, 2048, TOML, 8, TOMH, 8, CEBP, 8, C0LS, 8, C1LS, 8, C0HS, 8, C1HS, 8, ROMS, 32, MUXF, 8, PDDN, 8, CNSB, 8, RDHW, 8, DAS3, 8, TNBH, 8, TCP0, 8, TCP1, 8, ATNB, 8, PCP0, 8, PCP1, 8, PWMN, 8, LPTY, 8, M92D, 8, WKPM, 8, ALST, 8, AFUC, 8, EXUS, 8, GV0E, 8, WLSH, 8, TSSS, 8, AOZP, 8, TZFG, 8, BPS0, 8, NAPC, 8, PCBA, 32, PCBL, 32, WLAN, 8, BLTH, 8, GPSS, 8, NFCS, 8, SBTY, 8, BDID, 16, MWTT, 8, ACPM, 8, KBCS, 8, ACEC, 8, MM64, 8, HMB1, 64, HMB2, 64, HMM1, 64, HMM2, 64, HML1, 64, HML2, 64 } OperationRegion (OGNS, SystemMemory, 0xBF7A0E98, 0x0000000B) Field (OGNS, AnyAcc, Lock, Preserve) { EGPO, 8, BTBE, 8, M2WL, 8, THPN, 8, PBAR, 8, THPD, 8, OG06, 8, OG07, 8, OG08, 8, OG09, 8, OG10, 8 } Method (SCMP, 2, NotSerialized) { Name (STG1, Buffer (0x50){}) Name (STG2, Buffer (0x50){}) STG1 = Arg0 STG2 = Arg1 If ((SizeOf (Arg0) != SizeOf (Arg1))) { Return (Zero) } Local0 = Zero While ((Local0 < SizeOf (Arg0))) { If ((DerefOf (STG1 [Local0]) != DerefOf (STG2 [Local0] ))) { Return (Zero) } Local0++ } Return (One) } Name (WNOS, Zero) Name (MYOS, Zero) Name (HTTS, Zero) Name (OSTB, Ones) Name (TPOS, Zero) Name (LINX, Zero) Name (OSSP, Zero) Method (SEQL, 2, Serialized) { Local0 = SizeOf (Arg0) Local1 = SizeOf (Arg1) If ((Local0 != Local1)) { Return (Zero) } Name (BUF0, Buffer (Local0){}) BUF0 = Arg0 Name (BUF1, Buffer (Local0){}) BUF1 = Arg1 Local2 = Zero While ((Local2 < Local0)) { Local3 = DerefOf (BUF0 [Local2]) Local4 = DerefOf (BUF1 [Local2]) If ((Local3 != Local4)) { Return (Zero) } Local2++ } Return (One) } Method (OSTP, 0, NotSerialized) { If ((OSTB == Ones)) { If (CondRefOf (\_OSI, Local0)) { OSTB = Zero TPOS = Zero If (_OSI ("Windows 2001")) { OSTB = 0x08 TPOS = 0x08 } If (_OSI ("Windows 2001.1")) { OSTB = 0x20 TPOS = 0x20 } If (_OSI ("Windows 2001 SP1")) { OSTB = 0x10 TPOS = 0x10 } If (_OSI ("Windows 2001 SP2")) { OSTB = 0x11 TPOS = 0x11 } If (_OSI ("Windows 2001 SP3")) { OSTB = 0x12 TPOS = 0x12 } If (_OSI ("Windows 2006")) { OSTB = 0x40 TPOS = 0x40 } If (_OSI ("Windows 2006 SP1")) { OSTB = 0x41 TPOS = 0x41 OSSP = One } If (_OSI ("Windows 2009")) { OSSP = One OSTB = 0x50 TPOS = 0x50 } If (_OSI ("Windows 2012")) { OSSP = One OSTB = 0x60 TPOS = 0x60 } If (_OSI ("Windows 2013")) { OSSP = One OSTB = 0x61 TPOS = 0x61 } If (_OSI ("Windows 2015")) { OSSP = One OSTB = 0x70 TPOS = 0x70 } If (_OSI ("Linux")) { LINX = One OSTB = 0x80 TPOS = 0x80 } } ElseIf (CondRefOf (\_OS, Local0)) { If (SEQL (_OS, "Microsoft Windows")) { OSTB = One TPOS = One } ElseIf (SEQL (_OS, "Microsoft WindowsME: Millennium Edition")) { OSTB = 0x02 TPOS = 0x02 } ElseIf (SEQL (_OS, "Microsoft Windows NT")) { OSTB = 0x04 TPOS = 0x04 } Else { OSTB = Zero TPOS = Zero } } Else { OSTB = Zero TPOS = Zero } } Return (OSTB) /* \OSTB */ } Name (BUFN, Zero) Name (MBUF, Buffer (0x1000){}) OperationRegion (MDBG, SystemMemory, 0xBF399018, 0x00001004) Field (MDBG, AnyAcc, Lock, Preserve) { MDG0, 32768 } Method (DB2H, 1, Serialized) { SHOW (Arg0) MDGC (0x20) MDG0 = MBUF /* \MBUF */ } Method (DW2H, 1, Serialized) { Local0 = Arg0 Local1 = (Arg0 >> 0x08) Local0 &= 0xFF Local1 &= 0xFF DB2H (Local1) BUFN-- DB2H (Local0) } Method (DD2H, 1, Serialized) { Local0 = Arg0 Local1 = (Arg0 >> 0x10) Local0 &= 0xFFFF Local1 &= 0xFFFF DW2H (Local1) BUFN-- DW2H (Local0) } Method (MBGS, 1, Serialized) { Local0 = SizeOf (Arg0) Name (BUFS, Buffer (Local0){}) BUFS = Arg0 MDGC (0x20) While (Local0) { MDGC (DerefOf (BUFS [(SizeOf (Arg0) - Local0)])) Local0-- } MDG0 = MBUF /* \MBUF */ } Method (SHOW, 1, Serialized) { MDGC (NTOC ((Arg0 >> 0x04))) MDGC (NTOC (Arg0)) } Method (LINE, 0, Serialized) { Local0 = BUFN /* \BUFN */ Local0 &= 0x0F While (Local0) { MDGC (Zero) Local0++ Local0 &= 0x0F } } Method (MDGC, 1, Serialized) { MBUF [BUFN] = Arg0 BUFN += One If ((BUFN > 0x0FFF)) { BUFN &= 0x0FFF UP_L (One) } } Method (UP_L, 1, Serialized) { Local2 = Arg0 Local2 <<= 0x04 MOVE (Local2) Local3 = (0x1000 - Local2) While (Local2) { MBUF [Local3] = Zero Local3++ Local2-- } } Method (MOVE, 1, Serialized) { Local4 = Arg0 BUFN = Zero Local5 = (0x1000 - Local4) While (Local5) { Local5-- MBUF [BUFN] = DerefOf (MBUF [Local4]) BUFN++ Local4++ } } Method (NTOC, 1, Serialized) { Local0 = (Arg0 & 0x0F) If ((Local0 < 0x0A)) { Local0 += 0x30 } Else { Local0 += 0x37 } Return (Local0) } Scope (_PR) { Processor (C000, 0x00, 0x00000410, 0x06){} Processor (C001, 0x01, 0x00000410, 0x06){} Processor (C002, 0x02, 0x00000410, 0x06){} Processor (C003, 0x03, 0x00000410, 0x06){} Processor (C004, 0x04, 0x00000410, 0x06){} Processor (C005, 0x05, 0x00000410, 0x06){} Processor (C006, 0x06, 0x00000410, 0x06){} Processor (C007, 0x07, 0x00000410, 0x06){} } Name (_S0, Package (0x04) // _S0_: S0 System State { Zero, Zero, Zero, Zero }) If ((DAS3 == One)) { Name (_S3, Package (0x04) // _S3_: S3 System State { 0x03, 0x03, Zero, Zero }) } Name (_S4, Package (0x04) // _S4_: S4 System State { 0x04, 0x04, Zero, Zero }) Name (_S5, Package (0x04) // _S5_: S5 System State { 0x05, 0x05, Zero, Zero }) Scope (_GPE) { Method (_L08, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.GPP0, 0x02) // Device Wake Notify (\_SB.PCI0.GPP1, 0x02) // Device Wake Notify (\_SB.PCI0.GPP2, 0x02) // Device Wake Notify (\_SB.PCI0.GPP3, 0x02) // Device Wake Notify (\_SB.PCI0.GPP4, 0x02) // Device Wake Notify (\_SB.PCI0.GPP5, 0x02) // Device Wake Notify (\_SB.PCI0.GPP6, 0x02) // Device Wake Notify (\_SB.PCI0.GP17, 0x02) // Device Wake Notify (\_SB.PCI0.GP18, 0x02) // Device Wake } Method (_L19, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.GP17.XHC0, 0x02) // Device Wake Notify (\_SB.PCI0.GP17.XHC1, 0x02) // Device Wake } } Name (PICM, Zero) Name (GPIC, Zero) Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model { PICM = Arg0 GPIC = Arg0 If (PICM) { \_SB.DSPI () If (NAPC) { \_SB.PCI0.NAPE () } } } Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep { SPTS (Arg0) If ((Arg0 == One)) { \_SB.S80H (0x51) } If ((Arg0 == 0x03)) { \_SB.S80H (0x53) SLPS = One } If ((Arg0 == 0x04)) { \_SB.S80H (0x54) SLPS = One RSTU = One } If ((Arg0 == 0x05)) { \_SB.S80H (0x55) BCMD = 0x90 \_SB.BSMI (Zero) \_SB.GSMI (0x03) } If (CondRefOf (\_SB.TPM2.PTS)) { \_SB.TPM2.PTS (Arg0) } \_SB.APTS (Arg0, MPTS (Arg0)) } OperationRegion (XMOS, SystemIO, 0x72, 0x02) Field (XMOS, ByteAcc, Lock, Preserve) { XIDX, 8, XDAT, 8 } IndexField (XIDX, XDAT, ByteAcc, Lock, Preserve) { Offset (0x74), WKSR, 8, Offset (0xD0), WLNS, 1, BTNS, 1 } Method (_WAK, 1, NotSerialized) // _WAK: Wake { SWAK (Arg0) \_SB.AWAK (Arg0) If (((Arg0 == 0x03) || (Arg0 == 0x04))) { If ((GPIC != Zero)) { \_SB.DSPI () If (NAPC) { \_SB.PCI0.NAPE () } } } If ((Arg0 == 0x03)) { \_SB.S80H (0xE3) If (((WKSR == 0x06) || (WKSR == 0x07))) { Notify (\_SB.GPIO, Zero) // Bus Check Notify (\_SB.I2CA, Zero) // Bus Check Notify (\_SB.I2CB, Zero) // Bus Check Notify (\_SB.I2CD, Zero) // Bus Check } Else { Notify (\_SB.PWRB, 0x02) // Device Wake Notify (_SB, Zero) // Bus Check } } If ((Arg0 == 0x04)) { \_SB.S80H (0xE4) Notify (\_SB.PWRB, 0x02) // Device Wake Notify (_SB, Zero) // Bus Check } If ((TPOS == 0x40)) { Local0 = One } If ((TPOS == 0x80)) { Local0 = 0x02 } If ((TPOS == 0x50)) { Local0 = 0x03 } If ((TPOS == 0x60)) { Local0 = 0x04 } If ((TPOS == 0x61)) { Local0 = 0x05 } If ((TPOS == 0x70)) { Local0 = 0x06 } \_SB.PCI0.LPC0.EC0.OSTY = Local0 MWAK (Arg0) Return (Zero) } Scope (_SB) { Device (PCI0) { Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID Name (_UID, One) // _UID: Unique ID Name (_BBN, Zero) // _BBN: BIOS Bus Number Name (_ADR, Zero) // _ADR: Address Method (_INI, 0, NotSerialized) // _INI: Initialize { If ((GPIC != Zero)) { DSPI () If (\NAPC) { NAPE () } } OSTP () } Name (SUPP, Zero) Name (CTRL, Zero) Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities { CreateDWordField (Arg3, Zero, CDW1) CreateDWordField (Arg3, 0x04, CDW2) CreateDWordField (Arg3, 0x08, CDW3) If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) { SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */ CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ If (((SUPP & 0x16) != 0x16)) { CTRL &= 0x1E } CTRL &= 0x1D If (~(CDW1 & One)) { If ((CTRL & One)){} If ((CTRL & 0x04)){} If ((CTRL & 0x10)){} } If ((Arg1 != One)) { CDW1 |= 0x08 } If ((CDW3 != CTRL)) { CDW1 |= 0x10 } CDW3 = CTRL /* \_SB_.PCI0.CTRL */ Return (Arg3) } Else { CDW1 |= 0x04 Return (Arg3) } } Method (TOM, 0, NotSerialized) { Local0 = (TOML * 0x00010000) Local1 = (TOMH * 0x01000000) Local0 += Local1 Return (Local0) } Name (CRES, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, SubDecode, 0x0000, // Granularity 0x0000, // Range Minimum 0x00FF, // Range Maximum 0x0000, // Translation Offset 0x0100, // Length 0x00,, ) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Granularity 0x0000, // Range Minimum 0x0CF7, // Range Maximum 0x0000, // Translation Offset 0x0CF8, // Length 0x00,, , TypeStatic, DenseTranslation) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Granularity 0x0D00, // Range Minimum 0xFFFF, // Range Maximum 0x0000, // Translation Offset 0xF300, // Length ,, , TypeStatic, DenseTranslation) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Granularity 0x000A0000, // Range Minimum 0x000BFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00020000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadOnly, 0x00000000, // Granularity 0x000C0000, // Range Minimum 0x000C3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadOnly, 0x00000000, // Granularity 0x000C4000, // Range Minimum 0x000C7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadOnly, 0x00000000, // Granularity 0x000C8000, // Range Minimum 0x000CBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadOnly, 0x00000000, // Granularity 0x000CC000, // Range Minimum 0x000CFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Granularity 0x000D0000, // Range Minimum 0x000D3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Granularity 0x000D4000, // Range Minimum 0x000D7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Granularity 0x000D8000, // Range Minimum 0x000DBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Granularity 0x000DC000, // Range Minimum 0x000DFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E0000, // Range Minimum 0x000E3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E4000, // Range Minimum 0x000E7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E8000, // Range Minimum 0x000EBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000EC000, // Range Minimum 0x000EFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Granularity 0x80000000, // Range Minimum 0xF7FFFFFF, // Range Maximum 0x00000000, // Translation Offset 0x78000000, // Length 0x00,, _Y00, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Granularity 0xFC000000, // Range Minimum 0xFED3FFFF, // Range Maximum 0x00000000, // Translation Offset 0x02D40000, // Length 0x00,, _Y01, AddressRangeMemory, TypeStatic) IO (Decode16, 0x0CF8, // Range Minimum 0x0CF8, // Range Maximum 0x01, // Alignment 0x08, // Length ) QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x0000000000000000, // Granularity 0x0000000000000000, // Range Minimum 0x0000000000000000, // Range Maximum 0x0000000000000000, // Translation Offset 0x0000000000000000, // Length ,, _Y02, AddressRangeMemory, TypeStatic) QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x0000000000000000, // Granularity 0x0000000000000000, // Range Minimum 0x0000000000000000, // Range Maximum 0x0000000000000000, // Translation Offset 0x0000000000000000, // Length ,, _Y03, AddressRangeMemory, TypeStatic) }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateDWordField (CRES, \_SB.PCI0._Y00._MIN, BTMN) // _MIN: Minimum Base Address CreateDWordField (CRES, \_SB.PCI0._Y00._MAX, BTMX) // _MAX: Maximum Base Address CreateDWordField (CRES, \_SB.PCI0._Y00._LEN, BTLN) // _LEN: Length CreateDWordField (CRES, \_SB.PCI0._Y01._MIN, BTN1) // _MIN: Minimum Base Address CreateDWordField (CRES, \_SB.PCI0._Y01._MAX, BTX1) // _MAX: Maximum Base Address CreateDWordField (CRES, \_SB.PCI0._Y01._LEN, BTL1) // _LEN: Length BTMN = TOM () BTMX = (PCBA - One) BTLN = (PCBA - BTMN) /* \_SB_.PCI0._CRS.BTMN */ BTN1 = (PCBL + One) BTL1 = (BTX1 - BTN1) /* \_SB_.PCI0._CRS.BTN1 */ BTL1 += One If ((MM64 == One)) { CreateQWordField (CRES, \_SB.PCI0._Y02._MIN, M1MN) // _MIN: Minimum Base Address CreateQWordField (CRES, \_SB.PCI0._Y02._MAX, M1MX) // _MAX: Maximum Base Address CreateQWordField (CRES, \_SB.PCI0._Y02._LEN, M1LN) // _LEN: Length M1MN = HMB1 /* \HMB1 */ M1MX = HMM1 /* \HMM1 */ M1LN = HML1 /* \HML1 */ CreateQWordField (CRES, \_SB.PCI0._Y03._MIN, M2MN) // _MIN: Minimum Base Address CreateQWordField (CRES, \_SB.PCI0._Y03._MAX, M2MX) // _MAX: Maximum Base Address CreateQWordField (CRES, \_SB.PCI0._Y03._LEN, M2LN) // _LEN: Length M2MN = HMB2 /* \HMB2 */ M2MX = HMM2 /* \HMM2 */ M2LN = HML2 /* \HML2 */ } Return (CRES) /* \_SB_.PCI0.CRES */ } Device (MEMR) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (BAR3, 0xFDA00000) Name (MEM1, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00000000, // Address Length _Y04) Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00000000, // Address Length _Y05) Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00000000, // Address Length _Y06) }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y04._BAS, MB01) // _BAS: Base Address CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y04._LEN, ML01) // _LEN: Length CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y05._BAS, MB02) // _BAS: Base Address CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y05._LEN, ML02) // _LEN: Length CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y06._BAS, MB03) // _BAS: Base Address CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y06._LEN, ML03) // _LEN: Length If (GPIC) { MB01 = 0xFEC00000 MB02 = 0xFEE00000 ML01 = 0x1000 If (\NAPC) { ML01 += 0x1000 } ML02 = 0x1000 } If ((BAR3 != 0xFFF00000)) { MB03 = BAR3 /* \_SB_.PCI0.MEMR.BAR3 */ ML03 = 0x00100000 } Return (MEM1) /* \_SB_.PCI0.MEMR.MEM1 */ } } OperationRegion (NAPC, PCI_Config, 0xB8, 0x08) Field (NAPC, DWordAcc, NoLock, Preserve) { NAPX, 32, NAPD, 32 } Mutex (NAPM, 0x00) Method (NAPE, 0, NotSerialized) { Acquire (NAPM, 0xFFFF) NAPX = 0x14300000 Local0 = NAPD /* \_SB_.PCI0.NAPD */ Local0 &= 0xFFFFFFEF NAPD = Local0 Release (NAPM) } Name (PR00, Package (0x0A) { Package (0x04) { 0x0001FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0001FFFF, One, LNKB, Zero }, Package (0x04) { 0x0001FFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x0001FFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x0008FFFF, Zero, LNKD, Zero }, Package (0x04) { 0x0008FFFF, One, LNKE, Zero }, Package (0x04) { 0x0014FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0014FFFF, One, LNKB, Zero }, Package (0x04) { 0x0014FFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x0014FFFF, 0x03, LNKD, Zero } }) Name (AR00, Package (0x0A) { Package (0x04) { 0x0001FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0001FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0001FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0001FFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x0008FFFF, Zero, Zero, 0x13 }, Package (0x04) { 0x0008FFFF, One, Zero, 0x14 }, Package (0x04) { 0x0014FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0014FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0014FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0014FFFF, 0x03, Zero, 0x13 } }) Name (NR00, Package (0x0A) { Package (0x04) { 0x0001FFFF, Zero, Zero, 0x28 }, Package (0x04) { 0x0001FFFF, One, Zero, 0x29 }, Package (0x04) { 0x0001FFFF, 0x02, Zero, 0x2A }, Package (0x04) { 0x0001FFFF, 0x03, Zero, 0x2B }, Package (0x04) { 0x0008FFFF, Zero, Zero, 0x2B }, Package (0x04) { 0x0008FFFF, One, Zero, 0x24 }, Package (0x04) { 0x0014FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0014FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0014FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0014FFFF, 0x03, Zero, 0x13 } }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { If (\NAPC) { Return (NR00) /* \_SB_.PCI0.NR00 */ } Else { Return (AR00) /* \_SB_.PCI0.AR00 */ } } Else { Return (PR00) /* \_SB_.PCI0.PR00 */ } } Device (GPP0) { Name (_ADR, 0x00010001) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x03)) } Else { Return (GPRW (0x08, Zero)) } } Name (PR01, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) Name (AR01, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) Name (NR01, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x18 }, Package (0x04) { 0xFFFF, One, Zero, 0x19 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x1A }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x1B } }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { If (\NAPC) { Return (NR01) /* \_SB_.PCI0.GPP0.NR01 */ } Else { Return (AR01) /* \_SB_.PCI0.GPP0.AR01 */ } } Else { Return (PR01) /* \_SB_.PCI0.GPP0.PR01 */ } } Device (VGA) { Name (_ADR, Zero) // _ADR: Address Name (DOSA, Zero) Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching { DOSA = Arg0 } Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices { Return (Package (0x05) { 0x00010110, 0x00010210, 0x00010220, 0x00010230, 0x00010240 }) } Device (LCD) { Name (_ADR, 0x0110) // _ADR: Address Name (BCLB, Package (0x34) { 0x5A, 0x3C, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E, 0x20, 0x22, 0x24, 0x26, 0x28, 0x2A, 0x2C, 0x2E, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3A, 0x3C, 0x3E, 0x40, 0x42, 0x44, 0x46, 0x48, 0x4A, 0x4C, 0x4E, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5A, 0x5C, 0x5E, 0x60, 0x62, 0x64 }) Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels { Return (BCLB) /* \_SB_.PCI0.GPP0.VGA_.LCD_.BCLB */ } Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method { Divide ((Arg0 * 0xFF), 0x64, Local1, Local0) AFN7 (Local0) BRTL = Arg0 } } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } } Device (HDAU) { Name (_ADR, One) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } } } Device (GPP1) { Name (_ADR, 0x00010002) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x03)) } Else { Return (GPRW (0x08, Zero)) } } Name (PR02, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKE, Zero }, Package (0x04) { 0xFFFF, One, LNKF, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKG, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKH, Zero } }) Name (AR02, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x14 }, Package (0x04) { 0xFFFF, One, Zero, 0x15 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x16 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x17 } }) Name (NR02, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x1C }, Package (0x04) { 0xFFFF, One, Zero, 0x1D }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x1E }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x1F } }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { If (\NAPC) { Return (NR02) /* \_SB_.PCI0.GPP1.NR02 */ } Else { Return (AR02) /* \_SB_.PCI0.GPP1.AR02 */ } } Else { Return (PR02) /* \_SB_.PCI0.GPP1.PR02 */ } } Device (VGA) { Name (_ADR, Zero) // _ADR: Address Name (DOSA, Zero) Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching { DOSA = Arg0 } Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices { Return (Package (0x05) { 0x00010110, 0x00010210, 0x00010220, 0x00010230, 0x00010240 }) } Device (LCD) { Name (_ADR, 0x0110) // _ADR: Address Name (BCLB, Package (0x34) { 0x5A, 0x3C, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E, 0x20, 0x22, 0x24, 0x26, 0x28, 0x2A, 0x2C, 0x2E, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3A, 0x3C, 0x3E, 0x40, 0x42, 0x44, 0x46, 0x48, 0x4A, 0x4C, 0x4E, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5A, 0x5C, 0x5E, 0x60, 0x62, 0x64 }) Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels { Return (BCLB) /* \_SB_.PCI0.GPP1.VGA_.LCD_.BCLB */ } Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method { Divide ((Arg0 * 0xFF), 0x64, Local1, Local0) AFN7 (Local0) BRTL = Arg0 } } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } } Device (HDAU) { Name (_ADR, One) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } } } Device (GPP2) { Name (_ADR, 0x00010003) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x03)) } Else { Return (GPRW (0x08, Zero)) } } Name (PR03, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) Name (AR03, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) Name (NR03, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x20 }, Package (0x04) { 0xFFFF, One, Zero, 0x21 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x22 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x23 } }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { If (\NAPC) { Return (NR03) /* \_SB_.PCI0.GPP2.NR03 */ } Else { Return (AR03) /* \_SB_.PCI0.GPP2.AR03 */ } } Else { Return (PR03) /* \_SB_.PCI0.GPP2.PR03 */ } } } Device (GPP3) { Name (_ADR, 0x00010004) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x03)) } Else { Return (GPRW (0x08, Zero)) } } Name (PR04, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKE, Zero }, Package (0x04) { 0xFFFF, One, LNKF, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKG, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKH, Zero } }) Name (AR04, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x14 }, Package (0x04) { 0xFFFF, One, Zero, 0x15 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x16 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x17 } }) Name (NR04, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x24 }, Package (0x04) { 0xFFFF, One, Zero, 0x25 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x26 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x27 } }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { If (\NAPC) { Return (NR04) /* \_SB_.PCI0.GPP3.NR04 */ } Else { Return (AR04) /* \_SB_.PCI0.GPP3.AR04 */ } } Else { Return (PR04) /* \_SB_.PCI0.GPP3.PR04 */ } } } Device (GPP4) { Name (_ADR, 0x00010005) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x03)) } Else { Return (GPRW (0x08, Zero)) } } Name (PR05, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) Name (AR05, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) Name (NR05, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x28 }, Package (0x04) { 0xFFFF, One, Zero, 0x29 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x2A }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x2B } }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { If (\NAPC) { Return (NR05) /* \_SB_.PCI0.GPP4.NR05 */ } Else { Return (AR05) /* \_SB_.PCI0.GPP4.AR05 */ } } Else { Return (PR05) /* \_SB_.PCI0.GPP4.PR05 */ } } } Device (GPP5) { Name (_ADR, 0x00010006) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x03)) } Else { Return (GPRW (0x08, Zero)) } } Name (PR06, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKE, Zero }, Package (0x04) { 0xFFFF, One, LNKF, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKG, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKH, Zero } }) Name (AR06, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x14 }, Package (0x04) { 0xFFFF, One, Zero, 0x15 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x16 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x17 } }) Name (NR06, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x2C }, Package (0x04) { 0xFFFF, One, Zero, 0x2D }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x2E }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x2F } }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { If (\NAPC) { Return (NR06) /* \_SB_.PCI0.GPP5.NR06 */ } Else { Return (AR06) /* \_SB_.PCI0.GPP5.AR06 */ } } Else { Return (PR06) /* \_SB_.PCI0.GPP5.PR06 */ } } } Device (GPP6) { Name (_ADR, 0x00010007) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x03)) } Else { Return (GPRW (0x08, Zero)) } } Name (PR07, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) Name (AR07, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) Name (NR07, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x30 }, Package (0x04) { 0xFFFF, One, Zero, 0x31 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x32 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x33 } }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { If (\NAPC) { Return (NR07) /* \_SB_.PCI0.GPP6.NR07 */ } Else { Return (AR07) /* \_SB_.PCI0.GPP6.AR07 */ } } Else { Return (PR07) /* \_SB_.PCI0.GPP6.PR07 */ } } } Device (GP17) { Name (_ADR, 0x00080001) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x19, 0x03)) } Else { Return (GPRW (0x19, Zero)) } } Name (PR17, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKE, Zero }, Package (0x04) { 0xFFFF, One, LNKF, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKG, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKH, Zero } }) Name (AR17, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x14 }, Package (0x04) { 0xFFFF, One, Zero, 0x15 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x16 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x17 } }) Name (NR17, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x34 }, Package (0x04) { 0xFFFF, One, Zero, 0x35 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x36 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x37 } }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { If (\NAPC) { Return (NR17) /* \_SB_.PCI0.GP17.NR17 */ } Else { Return (AR17) /* \_SB_.PCI0.GP17.AR17 */ } } Else { Return (PR17) /* \_SB_.PCI0.GP17.PR17 */ } } Device (VGA) { Name (_ADR, Zero) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Name (DOSA, Zero) Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching { DOSA = Arg0 } Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices { Return (Package (0x07) { 0x00010110, 0x00010210, 0x00010220, 0x00010230, 0x00010240, 0x00031000, 0x00032000 }) } Device (LCD) { Name (_ADR, 0x0110) // _ADR: Address Name (BCLB, Package (0x34) { 0x5A, 0x3C, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E, 0x20, 0x22, 0x24, 0x26, 0x28, 0x2A, 0x2C, 0x2E, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3A, 0x3C, 0x3E, 0x40, 0x42, 0x44, 0x46, 0x48, 0x4A, 0x4C, 0x4E, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5A, 0x5C, 0x5E, 0x60, 0x62, 0x64 }) Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels { Return (BCLB) /* \_SB_.PCI0.GP17.VGA_.LCD_.BCLB */ } Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method { Divide ((Arg0 * 0xFF), 0x64, Local1, Local0) AFN7 (Local0) BRTL = Arg0 } } OperationRegion (GPUM, PCI_Config, 0x24, 0x04) Field (GPUM, ByteAcc, NoLock, Preserve) { GPUB, 32 } Method (GBSA, 0, Serialized) { Local0 = GPUB /* \_SB_.PCI0.GP17.VGA_.GPUB */ Local0 &= 0xFFFFFF00 Local0 += 0x0138 Return (Local0) } OperationRegion (SCRA, SystemMemory, GBSA (), 0x04) Field (SCRA, ByteAcc, NoLock, Preserve) { Offset (0x01), BRIL, 8 } } Device (PSP) { Name (_ADR, 0x02) // _ADR: Address } Device (ACP) { Name (_ADR, 0x05) // _ADR: Address } Device (AZAL) { Name (_ADR, 0x06) // _ADR: Address } Device (MP2C) { Name (_ADR, 0x07) // _ADR: Address } Device (XHC0) { Name (_ADR, 0x03) // _ADR: Address Method (_S0W, 0, NotSerialized) // _S0W: S0 Device Wake State { Return (Zero) } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x19, 0x03)) } Device (HUBN) { Name (_ADR, Zero) // _ADR: Address Name (UPC0, Package (0x04) { Zero, 0xFF, Zero, Zero }) Name (UPCN, Package (0x04) { Zero, Zero, Zero, Zero }) Name (UPCC, Package (0x04) { 0xFF, 0x09, Zero, Zero }) Name (UPC3, Package (0x04) { 0xFF, 0x03, Zero, Zero }) Name (UPC2, Package (0x04) { 0xFF, Zero, Zero, Zero }) Name (UPCP, Package (0x04) { 0xFF, 0xFF, Zero, Zero }) Name (PLDN, Package (0x01) { Buffer (0x10) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } }) Name (PLD1, Package (0x01) { Buffer (0x10) { /* 0000 */ 0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, // ..r..... /* 0008 */ 0x69, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 // i....... } }) Name (PLD2, Package (0x01) { Buffer (0x10) { /* 0000 */ 0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, // ..r..... /* 0008 */ 0x71, 0x0C, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00 // q....... } }) Name (PLD3, Package (0x01) { Buffer (0x10) { /* 0000 */ 0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, // ..r..... /* 0008 */ 0x69, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 // i....... } }) Name (PLDB, Package (0x01) { Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ /* 0008 */ 0xE0, 0x1E, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 // ........ } }) Device (HS01) { Name (_ADR, One) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPC2) /* \_SB_.PCI0.GP17.XHC0.HUBN.UPC2 */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLD1) /* \_SB_.PCI0.GP17.XHC0.HUBN.PLD1 */ } } Device (HS02) { Name (_ADR, 0x02) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPC2) /* \_SB_.PCI0.GP17.XHC0.HUBN.UPC2 */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLD2) /* \_SB_.PCI0.GP17.XHC0.HUBN.PLD2 */ } } Device (HS03) { Name (_ADR, 0x03) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPCC) /* \_SB_.PCI0.GP17.XHC0.HUBN.UPCC */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLD3) /* \_SB_.PCI0.GP17.XHC0.HUBN.PLD3 */ } } Device (HS04) { Name (_ADR, 0x04) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPCP) /* \_SB_.PCI0.GP17.XHC0.HUBN.UPCP */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLDB) /* \_SB_.PCI0.GP17.XHC0.HUBN.PLDB */ } Device (BLTH) { Name (_ADR, One) // _ADR: Address Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLDB) /* \_SB_.PCI0.GP17.XHC0.HUBN.PLDB */ } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } } } Device (SS01) { Name (_ADR, 0x05) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPC3) /* \_SB_.PCI0.GP17.XHC0.HUBN.UPC3 */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLD1) /* \_SB_.PCI0.GP17.XHC0.HUBN.PLD1 */ } } Device (SS02) { Name (_ADR, 0x06) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPC3) /* \_SB_.PCI0.GP17.XHC0.HUBN.UPC3 */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLD2) /* \_SB_.PCI0.GP17.XHC0.HUBN.PLD2 */ } } Device (SS03) { Name (_ADR, 0x07) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPCC) /* \_SB_.PCI0.GP17.XHC0.HUBN.UPCC */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLD3) /* \_SB_.PCI0.GP17.XHC0.HUBN.PLD3 */ } } Device (SS04) { Name (_ADR, 0x08) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPC0) /* \_SB_.PCI0.GP17.XHC0.HUBN.UPC0 */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLDN) /* \_SB_.PCI0.GP17.XHC0.HUBN.PLDN */ } } } } Device (XHC1) { Name (_ADR, 0x04) // _ADR: Address Method (_S0W, 0, NotSerialized) // _S0W: S0 Device Wake State { Return (Zero) } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x19, 0x03)) } Device (HUBN) { Name (_ADR, Zero) // _ADR: Address Name (UPCN, Package (0x04) { Zero, Zero, Zero, Zero }) Name (UPCP, Package (0x04) { 0xFF, 0xFF, Zero, Zero }) Name (PLDN, Package (0x01) { Buffer (0x10) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } }) Name (PLDR, Package (0x01) { Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ /* 0008 */ 0xB0, 0x1E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 // ........ } }) Name (PLDH, Package (0x01) { Buffer (0x10) { /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ /* 0008 */ 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00 // ........ } }) Name (PLDC, Package (0x01) { Buffer (0x14) { /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ /* 0008 */ 0x24, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, // $....... /* 0010 */ 0x88, 0xFF, 0xB8, 0xFF // .... } }) Name (PLDF, Package (0x01) { Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ /* 0008 */ 0xE0, 0x1E, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00 // ........ } }) Device (HS01) { Name (_ADR, One) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPCP) /* \_SB_.PCI0.GP17.XHC1.HUBN.UPCP */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLDR) /* \_SB_.PCI0.GP17.XHC1.HUBN.PLDR */ } Device (CARD) { Name (_ADR, One) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPCP) /* \_SB_.PCI0.GP17.XHC1.HUBN.UPCP */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLDR) /* \_SB_.PCI0.GP17.XHC1.HUBN.PLDR */ } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } } } Name (XUPC, Package (0x04) { 0xFF, 0xFF, Zero, Zero }) Name (XPLD, Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ /* 0008 */ 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // 0....... }) Device (HS02) { OperationRegion (BOID, SystemMemory, 0xFED81614, 0x04) Field (BOID, ByteAcc, NoLock, Preserve) { Offset (0x02), ID3V, 1 } Name (_ADR, 0x02) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPCP) /* \_SB_.PCI0.GP17.XHC1.HUBN.UPCP */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLDH) /* \_SB_.PCI0.GP17.XHC1.HUBN.PLDH */ } Device (GHUB) { Name (_ADR, One) // _ADR: Address Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities { Return (XUPC) /* \_SB_.PCI0.GP17.XHC1.HUBN.XUPC */ } Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device { Return (XPLD) /* \_SB_.PCI0.GP17.XHC1.HUBN.XPLD */ } Device (CAMA) { Name (_ADR, One) // _ADR: Address Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLDC) /* \_SB_.PCI0.GP17.XHC1.HUBN.PLDC */ } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } } Device (FGPT) { Name (_ADR, 0x02) // _ADR: Address Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLDF) /* \_SB_.PCI0.GP17.XHC1.HUBN.PLDF */ } Method (_STA, 0, NotSerialized) // _STA: Status { If ((ID3V == Zero)) { Return (Zero) } Return (0x0F) } } Method (_STA, 0, NotSerialized) // _STA: Status { If ((ID3V == Zero)) { Return (Zero) } Return (0x0F) } } Device (CAMB) { Name (_ADR, 0x02) // _ADR: Address Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLDC) /* \_SB_.PCI0.GP17.XHC1.HUBN.PLDC */ } Method (_STA, 0, NotSerialized) // _STA: Status { If ((ID3V == Zero)) { Return (0x0F) } Return (Zero) } } } Device (SS01) { Name (_ADR, 0x03) // _ADR: Address Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities { Return (UPCN) /* \_SB_.PCI0.GP17.XHC1.HUBN.UPCN */ } Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device { Return (PLDN) /* \_SB_.PCI0.GP17.XHC1.HUBN.PLDN */ } } } } } Device (GP18) { Name (_ADR, 0x00080002) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x03)) } Else { Return (GPRW (0x08, Zero)) } } Name (PR18, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKG, Zero }, Package (0x04) { 0xFFFF, One, LNKH, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKE, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKF, Zero } }) Name (AR18, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x16 }, Package (0x04) { 0xFFFF, One, Zero, 0x17 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x14 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x15 } }) Name (NR18, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x36 }, Package (0x04) { 0xFFFF, One, Zero, 0x37 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x34 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x35 } }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { If (\NAPC) { Return (NR18) /* \_SB_.PCI0.GP18.NR18 */ } Else { Return (AR18) /* \_SB_.PCI0.GP18.AR18 */ } } Else { Return (PR18) /* \_SB_.PCI0.GP18.PR18 */ } } Device (SATA) { Name (_ADR, Zero) // _ADR: Address } } Device (HPET) { Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((HPEN == One)) { If ((OSTB >= 0x40)) { Return (0x0F) } HPEN = Zero Return (One) } Return (One) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQNoFlags () {0} IRQNoFlags () {8} Memory32Fixed (ReadOnly, 0xFED00000, // Address Base 0x00000400, // Address Length _Y07) }) CreateDWordField (BUF0, \_SB.PCI0.HPET._CRS._Y07._BAS, HPEB) // _BAS: Base Address Local0 = 0xFED00000 HPEB = (Local0 & 0xFFFFFC00) Return (BUF0) /* \_SB_.PCI0.HPET._CRS.BUF0 */ } } Device (SMBS) { Name (_ADR, 0x00140000) // _ADR: Address } Device (LPC0) { Name (_ADR, 0x00140003) // _ADR: Address Device (DMAC) { Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x0081, // Range Minimum 0x0081, // Range Maximum 0x01, // Alignment 0x0F, // Length ) IO (Decode16, 0x00C0, // Range Minimum 0x00C0, // Range Maximum 0x01, // Alignment 0x20, // Length ) DMA (Compatibility, NotBusMaster, Transfer8_16, ) {4} }) } Device (COPR) { Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x00F0, // Range Minimum 0x00F0, // Range Maximum 0x01, // Alignment 0x0F, // Length ) IRQNoFlags () {13} }) } Device (PIC) { Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0020, // Range Minimum 0x0020, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A0, // Range Minimum 0x00A0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IRQNoFlags () {2} }) } Device (RTC) { Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID Name (BUF0, ResourceTemplate () { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x02, // Length ) }) Name (BUF1, ResourceTemplate () { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x02, // Length ) IRQNoFlags () {8} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { If ((HPEN == One)) { Return (BUF0) /* \_SB_.PCI0.LPC0.RTC_.BUF0 */ } Return (BUF1) /* \_SB_.PCI0.LPC0.RTC_.BUF1 */ } } Device (SPKR) { Name (_HID, EisaId ("PNP0800") /* Microsoft Sound System Compatible Device */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0061, // Range Minimum 0x0061, // Range Maximum 0x01, // Alignment 0x01, // Length ) }) } Device (TMR) { Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID Name (BUF0, ResourceTemplate () { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x01, // Alignment 0x04, // Length ) }) Name (BUF1, ResourceTemplate () { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x01, // Alignment 0x04, // Length ) IRQNoFlags () {0} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { If ((HPEN == One)) { Return (BUF0) /* \_SB_.PCI0.LPC0.TMR_.BUF0 */ } Return (BUF1) /* \_SB_.PCI0.LPC0.TMR_.BUF1 */ } } Device (KBC0) { Name (_HID, EisaId ("FUJ7401")) // _HID: Hardware ID Name (_CID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _CID: Compatible ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0060, // Range Minimum 0x0060, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0064, // Range Minimum 0x0064, // Range Maximum 0x01, // Alignment 0x01, // Length ) IRQNoFlags () {1} }) } Device (SYSR) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0010, // Range Minimum 0x0010, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x0072, // Range Minimum 0x0072, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0080, // Range Minimum 0x0080, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x00B0, // Range Minimum 0x00B0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0092, // Range Minimum 0x0092, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0400, // Range Minimum 0x0400, // Range Maximum 0x01, // Alignment 0xD0, // Length ) IO (Decode16, 0x04D0, // Range Minimum 0x04D0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x04D6, // Range Minimum 0x04D6, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0C00, // Range Minimum 0x0C00, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0C14, // Range Minimum 0x0C14, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0C50, // Range Minimum 0x0C50, // Range Maximum 0x01, // Alignment 0x03, // Length ) IO (Decode16, 0x0C6C, // Range Minimum 0x0C6C, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0C6F, // Range Minimum 0x0C6F, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0CD0, // Range Minimum 0x0CD0, // Range Maximum 0x01, // Alignment 0x0C, // Length ) }) } Device (MEM) { Name (_HID, EisaId ("PNP0C01") /* System Board */) // _HID: Hardware ID Name (MSRC, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x000E0000, // Address Base 0x00020000, // Address Length ) Memory32Fixed (ReadWrite, 0xFFF00000, // Address Base 0x00100000, // Address Length _Y08) }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateDWordField (MSRC, \_SB.PCI0.LPC0.MEM._Y08._LEN, PSIZ) // _LEN: Length CreateDWordField (MSRC, \_SB.PCI0.LPC0.MEM._Y08._BAS, PBAS) // _BAS: Base Address PSIZ = ROMS /* \ROMS */ Local0 = (ROMS - One) PBAS = (Ones - Local0) Return (MSRC) /* \_SB_.PCI0.LPC0.MEM_.MSRC */ } } Scope (\) { Name (ECON, One) } Device (EC0) { Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Name (ECAV, Zero) Name (XX11, Buffer (0x07){}) Mutex (LFCM, 0x00) Mutex (ECMT, 0x00) Name (_GPE, 0x03) // _GPE: General Purpose Events Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BFFR, ResourceTemplate () { IO (Decode16, 0x0062, // Range Minimum 0x0062, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0066, // Range Minimum 0x0066, // Range Maximum 0x00, // Alignment 0x01, // Length ) }) Return (BFFR) /* \_SB_.PCI0.LPC0.EC0_._CRS.BFFR */ } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF) Field (ERAM, ByteAcc, Lock, Preserve) { VCMD, 8, Offset (0x60), SMPR, 8 } OperationRegion (ERAX, SystemMemory, 0xFF00D400, 0xFF) Field (ERAX, ByteAcc, Lock, Preserve) { Offset (0x01), VDAT, 8, VSTA, 8, Offset (0x06), FANS, 8, BUSG, 1, BLEG, 1, BATF, 1, BNSM, 1, BTST, 1, BBAD, 1, AUTO, 1, FCHG, 1, ABTL, 8, DBTL, 8, EDCC, 1, ALSC, 1, CDMB, 1, CCSB, 1, BTSM, 1, BTCM, 1, LBTM, 1, CSBM, 1, SGST, 1, HDMI, 1, HYBD, 1, SWST, 1, EVNT, 1, DCRF, 1, COLR, 1, SGCN, 1, ODPO, 1, EODD, 1, ODPK, 1, CMEX, 1, CMON, 1, SODD, 1, ODFB, 1, EODS, 1, RTMP, 8, VTMP, 8, AFCC, 8, PINF, 3, SUPR, 1, GTMP, 1, QUIT, 1, LS35, 1, Offset (0x11), RMBT, 1, RSBT, 1, VTYP, 2, Offset (0x12), FUSL, 8, FUSH, 8, FWBT, 64, Offset (0x1D), QUIE, 8, Offset (0x31), GIRT, 8, PIRT, 8, KIRT, 8, IRTI, 8, Offset (0x36), DGPU, 8, GUST, 8, GDST, 8, Offset (0x43), ECTP, 8, Offset (0x4A), ESMC, 1, Offset (0x4B), EMOD, 8, BFUD, 16, Offset (0x5D), EXSI, 8, EXSB, 8, EXND, 8, Offset (0x61), SMST, 8, SMAD, 8, SMCM, 8, SMDA, 256, BCNT, 8, SMAA, 8, SAD0, 8, SAD1, 8, , 1, , 1, , 1, , 1, , 1, FBFG, 1, Offset (0x8A), KBLO, 1, UCHE, 1, KLCH, 1, , 1, KLFS, 1, KLOR, 1, UCHR, 1, UCER, 1, TPDV, 3, Offset (0x8C), QCHO, 1, BKLT, 1, Offset (0x8F), BMN0, 72, BDN0, 64, IBTL, 1, IBCL, 1, ISS0, 1, IRTC, 1, ISUP, 1, ISC2, 1, IWAK, 1, Offset (0xA1), , 1, VOUT, 1, TPAD, 1, HKDB, 1, Offset (0xA2), Offset (0xA3), OSTY, 3, , 1, ADPI, 2, , 1, ADPT, 1, PMEW, 1, MODW, 1, LANW, 1, RTCW, 1, WLAW, 1, USBW, 1, KEYW, 1, TPWK, 1, CHCR, 1, ADPP, 1, LERN, 1, ACMD, 1, BOVP, 1, LEAK, 1, AIRP, 1, ACOF, 1, S3EN, 1, S3RS, 1, S4EN, 1, S4RS, 1, S5EN, 1, S5RS, 1, Offset (0xA7), OSTT, 8, OSST, 8, THRT, 8, TCOT, 8, MODE, 1, , 2, INIT, 1, FAN1, 1, FAN2, 1, FAOK, 1, SKIN, 1, SDTE, 8, SPDN, 4, FNUM, 4, TLVL, 4, , 2, THSW, 1, TPIN, 1, TSTH, 1, TSCP, 1, , 2, PLVL, 4, CPUT, 8, CPTL, 8, Offset (0xB7), , 1, PWDB, 1, DIGT, 1, CDLK, 1, Offset (0xB8), , 1, LSTE, 1, PMEE, 1, PWBE, 1, RNGE, 1, BTWE, 1, Offset (0xB9), LCBV, 8, DGDF, 8, WLAN, 1, BLUE, 1, WEXT, 1, BEXT, 1, KILL, 1, WLOK, 1, EN3G, 1, EX3G, 1, KPID, 8, CTYP, 3, CORE, 3, GATY, 2, BA1P, 1, BA2P, 1, , 2, B1CH, 1, B2CH, 1, Offset (0xBF), PBY1, 1, PBY2, 1, , 2, SMB1, 1, SMB2, 1, Offset (0xC0), B1TY, 1, B1MD, 1, B1LW, 1, , 1, B1MF, 3, Offset (0xC1), B1ST, 8, B1RC, 16, B1SN, 16, B1FV, 16, B1DV, 16, B1DC, 16, B1FC, 16, B1GS, 8, B1CT, 8, B1CR, 16, B1AC, 16, B1PC, 8, B1VL, 8, B1TM, 8, B1AT, 8, B1CC, 16, B1TC, 8, B1CI, 8, B1CU, 8, B1CA, 8, B1SM, 16, B1VC, 8, B1FA, 8, B1VA, 8, B1C1, 16, B1C2, 16, B1C3, 16, B1C4, 16, Offset (0xF0), B1EX, 1, B1FL, 1, B1EP, 1, B1FI, 1, , 2, B1RE, 1, Offset (0xF1), B1LL, 1, B1CE, 1, B1SE, 1, B1S5, 1, B1SR, 1, B1SC, 1, Offset (0xF2), B1TO, 1, B1BC, 1, B1CF, 1, B1CS, 1, B1SG, 1, B1SU, 1, B1OV, 1, B1OT, 1, B1TT, 1, B1SA, 1, B1SS, 1, , 1, B1SF, 1, B1WN, 1, Offset (0xF4), B1DA, 16, Offset (0xF8), B1CN, 8, Offset (0xFB), Offset (0xFE), FA2S, 8 } OperationRegion (ECMS, SystemIO, 0x72, 0x02) Field (ECMS, ByteAcc, Lock, Preserve) { INDX, 8, DATA, 8 } Method (RECM, 1, Serialized) { INDX = Arg0 Return (DATA) /* \_SB_.PCI0.LPC0.EC0_.DATA */ } Method (WECM, 2, Serialized) { INDX = Arg0 DATA = Arg1 } OperationRegion (CMDE, SystemIO, 0x62, 0x0B) Field (CMDE, ByteAcc, Lock, Preserve) { EC62, 8, Offset (0x02), Offset (0x03), Offset (0x04), EC66, 8, Offset (0x06), EC68, 8, Offset (0x08), Offset (0x09), Offset (0x0A), EC6C, 8 } Method (WIBE, 1, Serialized) { Local0 = 0x00010000 While (Local0) { If ((Arg0 == One)) { Local1 = EC66 /* \_SB_.PCI0.LPC0.EC0_.EC66 */ } ElseIf ((Arg0 == 0x02)) { Local1 = EC6C /* \_SB_.PCI0.LPC0.EC0_.EC6C */ } Else { Return (0x02) } If (((Local1 & 0x02) == Zero)) { Return (Zero) } Stall (0x0A) Local0-- } Return (One) } Method (WOBF, 1, Serialized) { Local0 = 0x00010000 While (Local0) { If ((Arg0 == One)) { Local1 = EC66 /* \_SB_.PCI0.LPC0.EC0_.EC66 */ } ElseIf ((Arg0 == 0x02)) { Local1 = EC6C /* \_SB_.PCI0.LPC0.EC0_.EC6C */ } Else { Return (0x02) } If (((Local1 & One) == One)) { Return (Zero) } Stall (0x0A) Local0-- } Return (One) } Method (WOBE, 1, Serialized) { Local0 = 0x00010000 While (Local0) { If ((Arg0 == One)) { Local1 = EC66 /* \_SB_.PCI0.LPC0.EC0_.EC66 */ } ElseIf ((Arg0 == 0x02)) { Local1 = EC6C /* \_SB_.PCI0.LPC0.EC0_.EC6C */ } Else { Return (0x02) } If (((Local1 & One) == One)) { If ((Arg0 == One)) { Local2 = EC62 /* \_SB_.PCI0.LPC0.EC0_.EC62 */ } ElseIf ((Arg0 == 0x02)) { Local2 = EC68 /* \_SB_.PCI0.LPC0.EC0_.EC68 */ } Else { Return (0x02) } } Else { Return (Zero) } Stall (0x0A) Local0-- } Return (One) } Method (LCMD, 2, Serialized) { Name (LBUF, Buffer (0x1E) { 0x00 // . }) If ((WIBE (0x02) != Zero)) { Return (One) } If ((WOBE (0x02) != Zero)) { Return (One) } EC6C = Arg0 If ((WIBE (0x02) != Zero)) { Return (One) } If (((Arg1 != Zero) && (Arg1 != 0xFF))) { EC68 = Arg1 If ((WIBE (0x02) != Zero)) { Return (One) } } If ((WOBF (0x02) != Zero)) { Return (One) } Local0 = EC68 /* \_SB_.PCI0.LPC0.EC0_.EC68 */ Local1 = Zero While (Local0) { If ((WOBF (0x02) != Zero)) { Return (One) } LBUF [Local1] = EC68 /* \_SB_.PCI0.LPC0.EC0_.EC68 */ Local1++ Local0-- } Return (LBUF) /* \_SB_.PCI0.LPC0.EC0_.LCMD.LBUF */ } Method (SCMD, 2, Serialized) { Name (LBUF, Buffer (0x1E) { 0x00 // . }) If ((WIBE (One) != Zero)) { Return (One) } If ((WOBE (One) != Zero)) { Return (One) } EC66 = Arg0 If ((WIBE (One) != Zero)) { Return (One) } If (((Arg1 != Zero) && (Arg1 != 0xFF))) { EC62 = Arg1 If ((WIBE (One) != Zero)) { Return (One) } } If ((WOBF (One) != Zero)) { Return (One) } Local0 = EC62 /* \_SB_.PCI0.LPC0.EC0_.EC62 */ Local1 = Zero While (Local0) { If ((WOBF (One) != Zero)) { Return (One) } LBUF [Local1] = EC62 /* \_SB_.PCI0.LPC0.EC0_.EC62 */ Local1++ Local0-- } Return (LBUF) /* \_SB_.PCI0.LPC0.EC0_.SCMD.LBUF */ } Method (LRAM, 2, Serialized) { If ((WIBE (0x02) != Zero)) { Return (One) } If ((WOBE (0x02) != Zero)) { Return (One) } EC6C = 0x7E If ((WIBE (0x02) != Zero)) { Return (One) } EC68 = Arg0 If ((WIBE (0x02) != Zero)) { Return (One) } EC68 = Arg1 If ((WIBE (0x02) != Zero)) { Return (One) } If ((WOBF (0x02) != Zero)) { Return (One) } Return (EC68) /* \_SB_.PCI0.LPC0.EC0_.EC68 */ } Method (SRAM, 2, Serialized) { If ((WIBE (One) != Zero)) { Return (One) } If ((WOBE (One) != Zero)) { Return (One) } EC66 = 0x7E If ((WIBE (One) != Zero)) { Return (One) } EC62 = Arg0 If ((WIBE (One) != Zero)) { Return (One) } EC62 = Arg1 If ((WIBE (One) != Zero)) { Return (One) } If ((WOBF (One) != Zero)) { Return (One) } Return (EC62) /* \_SB_.PCI0.LPC0.EC0_.EC62 */ } Scope (\) { OperationRegion (LFCN, SystemMemory, 0xBF7BBD18, 0x00EE) Field (LFCN, AnyAcc, Lock, Preserve) { PS2V, 8, KBID, 8, MCSZ, 8, OKRB, 8, EDID, 1024, TPTY, 8, TPNV, 16, TPNP, 16, YG53, 8, LFCO, 800 } OperationRegion (SMIO, SystemIO, 0xB0, 0x02) Field (SMIO, ByteAcc, NoLock, Preserve) { SMBA, 8, SMBB, 8 } } Device (BAT0) { Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Name (_PCL, Package (0x01) // _PCL: Power Consumer List { _SB }) Name (PBIF, Package (0x0D) { Zero, Ones, Ones, One, Ones, Zero, Zero, 0x64, Zero, "LCFC", "BAT20101001", "LiP", "LENOVO" }) Name (PBST, Package (0x04) { One, 0x0A90, 0x1000, 0x2A30 }) Method (_STA, 0, NotSerialized) // _STA: Status { If ((ECON == One)) { If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { Local0 = BA1P /* \_SB_.PCI0.LPC0.EC0_.BA1P */ Release (LFCM) } } If ((Local0 & One)) { Return (0x1F) } Else { Return (0x0F) } } Else { Return (Zero) } } Method (_BIF, 0, NotSerialized) // _BIF: Battery Information { If ((ECAV == One)) { If ((Acquire (LFCM, 0xA000) == Zero)) { Local0 = B1DC /* \_SB_.PCI0.LPC0.EC0_.B1DC */ Local0 *= 0x0A PBIF [One] = Local0 Local0 = B1FC /* \_SB_.PCI0.LPC0.EC0_.B1FC */ Local0 *= 0x0A PBIF [0x02] = Local0 PBIF [0x04] = B1DV /* \_SB_.PCI0.LPC0.EC0_.B1DV */ If (B1FC) { PBIF [0x05] = ((B1FC * 0x0A) / 0x0A) PBIF [0x06] = ((B1FC * 0x0A) / 0x19) PBIF [0x07] = ((B1DC * 0x0A) / 0x64) } PBIF [0x09] = "" PBIF [0x0A] = "" PBIF [0x0B] = "" PBIF [0x0C] = "" Name (BDNT, Buffer (0x09) { 0x00 // . }) BDNT = BDN0 /* \_SB_.PCI0.LPC0.EC0_.BDN0 */ PBIF [0x09] = ToString (BDNT, Ones) Local0 = B1SN /* \_SB_.PCI0.LPC0.EC0_.B1SN */ Name (SERN, Buffer (0x06) { " " }) Local2 = 0x04 While (Local0) { Divide (Local0, 0x0A, Local1, Local0) SERN [Local2] = (Local1 + 0x30) Local2-- } PBIF [0x0A] = SERN /* \_SB_.PCI0.LPC0.EC0_.BAT0._BIF.SERN */ Name (DCH0, Buffer (0x0A) { 0x00 // . }) Name (DCH1, "LION") Name (DCH2, "LiP") If ((B1TY == One)) { DCH0 = DCH1 /* \_SB_.PCI0.LPC0.EC0_.BAT0._BIF.DCH1 */ PBIF [0x0B] = ToString (DCH0, Ones) } Else { DCH0 = DCH2 /* \_SB_.PCI0.LPC0.EC0_.BAT0._BIF.DCH2 */ PBIF [0x0B] = ToString (DCH0, Ones) } Name (BMNT, Buffer (0x0A) { 0x00 // . }) BMNT = BMN0 /* \_SB_.PCI0.LPC0.EC0_.BMN0 */ PBIF [0x0C] = ToString (BMNT, Ones) Release (LFCM) } } Return (PBIF) /* \_SB_.PCI0.LPC0.EC0_.BAT0.PBIF */ } Name (OBST, Zero) Name (OBAC, Zero) Name (OBPR, Zero) Name (OBRC, Zero) Name (OBPV, Zero) Method (_BST, 0, Serialized) // _BST: Battery Status { If ((ECAV == One)) { If ((Acquire (LFCM, 0xA000) == Zero)) { Sleep (0x10) Local0 = B1ST /* \_SB_.PCI0.LPC0.EC0_.B1ST */ Local1 = DerefOf (PBST [Zero]) Switch ((Local0 & 0x07)) { Case (Zero) { OBST = (Local1 & 0xF8) } Case (One) { OBST = (One | (Local1 & 0xF8)) } Case (0x02) { OBST = (0x02 | (Local1 & 0xF8)) } Case (0x04) { OBST = (0x04 | (Local1 & 0xF8)) } } Sleep (0x10) OBAC = B1AC /* \_SB_.PCI0.LPC0.EC0_.B1AC */ If ((OBST & One)) { If ((OBAC != Zero)) { OBAC = (~OBAC & 0x7FFF) } } ElseIf ((FBFG != One)) { If ((OBAC == Zero)) { OBAC = 0xFF } } Sleep (0x10) OBRC = B1RC /* \_SB_.PCI0.LPC0.EC0_.B1RC */ Sleep (0x10) OBPV = B1FV /* \_SB_.PCI0.LPC0.EC0_.B1FV */ OBRC *= 0x0A OBPR = ((OBAC * OBPV) / 0x03E8) PBST [Zero] = OBST /* \_SB_.PCI0.LPC0.EC0_.BAT0.OBST */ PBST [One] = OBPR /* \_SB_.PCI0.LPC0.EC0_.BAT0.OBPR */ PBST [0x02] = OBRC /* \_SB_.PCI0.LPC0.EC0_.BAT0.OBRC */ PBST [0x03] = OBPV /* \_SB_.PCI0.LPC0.EC0_.BAT0.OBPV */ Release (LFCM) } } Return (PBST) /* \_SB_.PCI0.LPC0.EC0_.BAT0.PBST */ } } Scope (\_SB.PCI0.LPC0.EC0) { Device (VPC0) { OperationRegion (BOID, SystemMemory, 0xFED8150C, 0x04) Field (BOID, ByteAcc, NoLock, Preserve) { Offset (0x02), ID2V, 1 } Name (_HID, "VPC2004") // _HID: Hardware ID Name (_UID, Zero) // _UID: Unique ID Name (_VPC, 0x400DE114) Name (VPCD, Zero) Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision { Return (One) } Method (_STA, 0, NotSerialized) // _STA: Status { If ((YG53 == Zero)) { _VPC = 0xFC0DF010 } If ((YG53 == One)) { _VPC = 0xF40DF018 } If ((YG53 == 0x02)) { _VPC = 0xF40DF008 } Return (0x0F) } Method (_CFG, 0, NotSerialized) { Return (_VPC) /* \_SB_.PCI0.LPC0.EC0_.VPC0._VPC */ } Method (VPCR, 1, Serialized) { If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { If ((Arg0 == One)) { VPCD = VCMD /* \_SB_.PCI0.LPC0.EC0_.VCMD */ } Else { VPCD = VDAT /* \_SB_.PCI0.LPC0.EC0_.VDAT */ } Release (LFCM) } } Return (VPCD) /* \_SB_.PCI0.LPC0.EC0_.VPC0.VPCD */ } Method (VPCW, 2, Serialized) { If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { If ((Arg0 == One)) { VCMD = Arg1 } Else { VDAT = Arg1 } Release (LFCM) } } Return (Zero) } Method (SVCR, 1, Serialized) { } Method (HALS, 0, NotSerialized) { Local0 = Zero If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { If (((YG53 == One) && (ID2V == Zero))) { Local0 |= 0x10 } If (((YG53 == One) && (ID2V == Zero))) { If ((One == KBLO)) { Local0 |= 0x20 } } Local0 |= 0x40 If ((One == UCHE)) { Local0 |= 0x80 } Local0 |= 0x0200 If (HKDB) { Local0 |= 0x0400 } Local0 |= 0x0800 If ((QUIE == One)) { Local0 |= 0x2000 } Release (LFCM) } } Return (Local0) } Method (SALS, 1, Serialized) { Local0 = ToInteger (Arg0) If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { If ((Local0 == 0x08)) { KBLO = One Release (LFCM) Return (Zero) } If ((Local0 == 0x09)) { KBLO = Zero Release (LFCM) Return (Zero) } If ((Local0 == 0x0A)) { UCHE = One SMBB = 0x32 SMBA = 0xCA Release (LFCM) Return (Zero) } If ((Local0 == 0x0B)) { UCHE = Zero SMBB = 0x33 SMBA = 0xCA Release (LFCM) Return (Zero) } If ((Local0 == 0x0E)) { HKDB = One SMBB = 0x31 SMBA = 0xCA Release (LFCM) Return (Zero) } If ((Local0 == 0x0F)) { HKDB = Zero SMBB = 0x30 SMBA = 0xCA Release (LFCM) Return (Zero) } Release (LFCM) } } Return (Zero) } Method (GBMD, 0, NotSerialized) { Local0 = 0x10000000 If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { If ((One == CDMB)) { Local0 |= One } If ((One == QCHO)) { Local0 |= 0x04 } If ((One == BBAD)) { Local0 |= 0x08 } If ((One == BTSM)) { Local0 |= 0x20 } If ((One == BLEG)) { Local0 |= 0x80 } If ((One == BATF)) { Local0 |= 0x0100 } If ((Zero == BTSM)) { Local0 |= 0x0200 } If ((One == BUSG)) { Local0 |= 0x0800 } If ((Zero == ADPI)) { Local0 &= 0xFFFE7FFF } If ((One == ADPI)) { Local0 |= 0x8000 } If ((0x02 == ADPI)) { Local0 |= 0x00010000 } Local0 |= 0x00020000 Local0 |= 0x00040000 If ((One == ESMC)) { Local0 |= 0x00400000 } Release (LFCM) } } Return (Local0) } Name (VBST, Zero) Name (VBAC, Zero) Name (VBPR, Zero) Name (VBRC, Zero) Name (VBPV, Zero) Name (VBFC, Zero) Name (VBCT, Zero) Method (SMTF, 1, NotSerialized) { If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { If ((Arg0 == Zero)) { If ((B1FV == Zero)) { Release (LFCM) Return (0xFFFF) } If ((B1AC == Zero)) { Release (LFCM) Return (0xFFFF) } Local0 = B1FC /* \_SB_.PCI0.LPC0.EC0_.B1FC */ Local0 *= 0x0A VBFC = Local0 Local1 = B1RC /* \_SB_.PCI0.LPC0.EC0_.B1RC */ Local1 *= 0x0A VBRC = Local1 If ((VBFC > VBRC)) { VBPV = B1FV /* \_SB_.PCI0.LPC0.EC0_.B1FV */ VBAC = B1AC /* \_SB_.PCI0.LPC0.EC0_.B1AC */ Local0 -= Local1 Local1 = (VBAC * VBPV) Local3 = (Local0 * 0x03E8) Local3 = (Local3 * 0x3C) VBCT = (Local3 / Local1) Release (LFCM) Return (VBCT) /* \_SB_.PCI0.LPC0.EC0_.VPC0.VBCT */ } Else { Release (LFCM) Return (0xFFFF) } } If ((Arg0 == One)) { Release (LFCM) Return (0xFFFF) } Release (LFCM) } } Return (0xFFFF) } Name (QBST, Zero) Name (QBAC, Zero) Name (QBPR, Zero) Name (QBRC, Zero) Name (QBPV, Zero) Name (QBFC, Zero) Name (QBCT, Zero) Method (SMTE, 1, NotSerialized) { If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { If ((Arg0 == Zero)) { If ((B1FV == Zero)) { Release (LFCM) Return (0xFFFF) } If ((B1AC == Zero)) { Release (LFCM) Return (0xFFFF) } Local0 = B1RC /* \_SB_.PCI0.LPC0.EC0_.B1RC */ Local0 *= 0x0A QBRC = Local0 Local1 = B1FC /* \_SB_.PCI0.LPC0.EC0_.B1FC */ Local1 *= 0x0A QBFC = Local1 If ((QBFC > QBRC)) { QBPV = B1FV /* \_SB_.PCI0.LPC0.EC0_.B1FV */ If (((B1AC & 0x8000) == Zero)) { QBAC = B1AC /* \_SB_.PCI0.LPC0.EC0_.B1AC */ } Else { QBAC = (0xFFFF - B1AC) } Local1 = (QBAC * QBPV) Local3 = (Local0 * 0x03E8) Local3 = (Local3 * 0x3C) QBCT = (Local3 / Local1) Release (LFCM) Return (QBCT) /* \_SB_.PCI0.LPC0.EC0_.VPC0.QBCT */ } Else { Release (LFCM) Return (0xFFFF) } } If ((Arg0 == One)) { Release (LFCM) Return (0xFFFF) } Release (LFCM) } } Return (0xFFFF) } Method (SBMC, 1, NotSerialized) { If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { If ((Arg0 == Zero)) { CDMB = Zero EDCC = One Release (LFCM) Return (Zero) } If ((Arg0 == One)) { CDMB = One Release (LFCM) Return (Zero) } If ((Arg0 == 0x03)) { BTSM = One Release (LFCM) Return (Zero) } If ((Arg0 == 0x05)) { BTSM = Zero Release (LFCM) Return (Zero) } If ((Arg0 == 0x07)) { QCHO = One BTSM = Zero Release (LFCM) Return (Zero) } If ((Arg0 == 0x08)) { QCHO = Zero Release (LFCM) Return (Zero) } If ((Arg0 == 0x09)) { ESMC = One Release (LFCM) Return (Zero) } If ((Arg0 == 0x10)) { ESMC = Zero Release (LFCM) Return (Zero) } Release (LFCM) } } Return (Zero) } Method (MHCF, 1, NotSerialized) { P80H = 0x78 Local0 = Arg0 If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { Local0 &= 0x20 Local0 >>= 0x05 RMBT = Local0 Sleep (0x14) Release (LFCM) } } Return (Local0) } Method (MHPF, 1, NotSerialized) { If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { Name (BFWB, Buffer (0x25){}) CreateByteField (BFWB, Zero, FB0) CreateByteField (BFWB, One, FB1) CreateByteField (BFWB, 0x02, FB2) CreateByteField (BFWB, 0x03, FB3) CreateField (BFWB, 0x20, 0x0100, FB4) CreateByteField (BFWB, 0x24, FB5) If ((SizeOf (Arg0) <= 0x25)) { If ((SMPR != Zero)) { FB1 = SMST /* \_SB_.PCI0.LPC0.EC0_.SMST */ } Else { BFWB = Arg0 SMAD = FB2 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHPF.FB2_ */ SMCM = FB3 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHPF.FB3_ */ BCNT = FB5 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHPF.FB5_ */ Local0 = FB0 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHPF.FB0_ */ If (((Local0 & One) == Zero)) { SMDA = FB4 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHPF.FB4_ */ } SMST = Zero SMPR = FB0 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHPF.FB0_ */ Local1 = 0x03E8 While (Local1) { Sleep (One) Local1-- If (((SMST && 0x80) || (SMPR == Zero))) { Break } } Local0 = FB0 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHPF.FB0_ */ If (((Local0 & One) != Zero)) { FB4 = SMDA /* \_SB_.PCI0.LPC0.EC0_.SMDA */ } FB1 = SMST /* \_SB_.PCI0.LPC0.EC0_.SMST */ If (((Local1 == Zero) || !(SMST && 0x80))) { SMPR = Zero FB1 = 0x92 } } Release (LFCM) Return (BFWB) /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHPF.BFWB */ } Release (LFCM) } } } Method (MHIF, 1, NotSerialized) { If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { P80H = 0x50 If ((Arg0 == Zero)) { Name (RETB, Buffer (0x0A){}) Name (BUF1, Buffer (0x08){}) BUF1 = FWBT /* \_SB_.PCI0.LPC0.EC0_.FWBT */ CreateByteField (BUF1, Zero, FW0) CreateByteField (BUF1, One, FW1) CreateByteField (BUF1, 0x02, FW2) CreateByteField (BUF1, 0x03, FW3) CreateByteField (BUF1, 0x04, FW4) CreateByteField (BUF1, 0x05, FW5) CreateByteField (BUF1, 0x06, FW6) CreateByteField (BUF1, 0x07, FW7) RETB [Zero] = FUSL /* \_SB_.PCI0.LPC0.EC0_.FUSL */ RETB [One] = FUSH /* \_SB_.PCI0.LPC0.EC0_.FUSH */ RETB [0x02] = FW0 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHIF.FW0_ */ RETB [0x03] = FW1 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHIF.FW1_ */ RETB [0x04] = FW2 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHIF.FW2_ */ RETB [0x05] = FW3 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHIF.FW3_ */ RETB [0x06] = FW4 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHIF.FW4_ */ RETB [0x07] = FW5 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHIF.FW5_ */ RETB [0x08] = FW6 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHIF.FW6_ */ RETB [0x09] = FW7 /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHIF.FW7_ */ Release (LFCM) Return (RETB) /* \_SB_.PCI0.LPC0.EC0_.VPC0.MHIF.RETB */ } Release (LFCM) } } } Method (GSBI, 1, NotSerialized) { Name (BIFB, Buffer (0x53) { /* 0000 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ........ /* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ........ /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ........ /* 0018 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ........ /* 0020 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ........ /* 0028 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ........ /* 0030 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ........ /* 0038 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ........ /* 0040 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ........ /* 0048 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ........ /* 0050 */ 0xFF, 0xFF, 0xFF // ... }) CreateWordField (BIFB, Zero, DCAP) CreateWordField (BIFB, 0x02, FCAP) CreateWordField (BIFB, 0x04, RCAP) CreateWordField (BIFB, 0x06, ATTE) CreateWordField (BIFB, 0x08, ATTF) CreateWordField (BIFB, 0x0A, BTVT) CreateWordField (BIFB, 0x0C, BTCT) CreateWordField (BIFB, 0x0E, BTMP) CreateWordField (BIFB, 0x10, MDAT) CreateWordField (BIFB, 0x12, FUDT) CreateWordField (BIFB, 0x14, DVLT) CreateField (BIFB, 0xB0, 0x50, DCHE) CreateField (BIFB, 0x0100, 0x40, DNAM) CreateField (BIFB, 0x0140, 0x60, MNAM) CreateField (BIFB, 0x01A0, 0xB8, BRNB) CreateQWordField (BIFB, 0x4B, BFW0) If (((Arg0 == Zero) || (Arg0 == One))) { If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { Local0 = B1DC /* \_SB_.PCI0.LPC0.EC0_.B1DC */ Local0 *= 0x0A DCAP = Local0 Local0 = B1FC /* \_SB_.PCI0.LPC0.EC0_.B1FC */ Local0 *= 0x0A FCAP = Local0 Local0 = B1RC /* \_SB_.PCI0.LPC0.EC0_.B1RC */ Local0 *= 0x0A RCAP = Local0 ATTE = SMTE (Zero) ATTF = SMTF (Zero) BTVT = B1FV /* \_SB_.PCI0.LPC0.EC0_.B1FV */ BTCT = B1AC /* \_SB_.PCI0.LPC0.EC0_.B1AC */ Local0 = B1AT /* \_SB_.PCI0.LPC0.EC0_.B1AT */ Local0 += 0x0111 Local0 *= 0x0A BTMP = Local0 MDAT = B1DA /* \_SB_.PCI0.LPC0.EC0_.B1DA */ If ((BFUD != Zero)) { FUDT = BFUD /* \_SB_.PCI0.LPC0.EC0_.BFUD */ } DVLT = B1DV /* \_SB_.PCI0.LPC0.EC0_.B1DV */ Name (DCH0, Buffer (0x0A) { 0x00 // . }) Name (DCH1, "LION") Name (DCH2, "LiP") If ((B1TY == One)) { DCH0 = DCH1 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GSBI.DCH1 */ DCHE = DCH0 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GSBI.DCH0 */ } Else { DCH0 = DCH2 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GSBI.DCH2 */ DCHE = DCH0 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GSBI.DCH0 */ } Name (BDNT, Buffer (0x08) { 0x00 // . }) BDNT = BDN0 /* \_SB_.PCI0.LPC0.EC0_.BDN0 */ DNAM = BDNT /* \_SB_.PCI0.LPC0.EC0_.VPC0.GSBI.BDNT */ Name (BMNT, Buffer (0x0C) { 0x00 // . }) BMNT = BMN0 /* \_SB_.PCI0.LPC0.EC0_.BMN0 */ MNAM = BMNT /* \_SB_.PCI0.LPC0.EC0_.VPC0.GSBI.BMNT */ Name (BRN0, Buffer (0x17) { 0x00 // . }) Local1 = 0x17 Local2 = 0x2E While (Local1) { BRN0 [(0x17 - Local1)] = SRAM (0x02, Local2) Local2++ Local1-- } BRNB = BRN0 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GSBI.BRN0 */ BFW0 = FWBT /* \_SB_.PCI0.LPC0.EC0_.FWBT */ Release (LFCM) } } Return (BIFB) /* \_SB_.PCI0.LPC0.EC0_.VPC0.GSBI.BIFB */ } If ((Arg0 == 0x02)) { Return (BIFB) /* \_SB_.PCI0.LPC0.EC0_.VPC0.GSBI.BIFB */ } Return (Zero) } Method (HODD, 0, NotSerialized) { } Method (SODD, 1, Serialized) { } Method (GBID, 0, Serialized) { Name (GBUF, Package (0x04) { Buffer (0x02) { 0x00, 0x00 // .. }, Buffer (0x02) { 0x00, 0x00 // .. }, Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ }, Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ } }) If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { DerefOf (GBUF [Zero]) [Zero] = B1CT /* \_SB_.PCI0.LPC0.EC0_.B1CT */ DerefOf (GBUF [One]) [Zero] = Zero Name (BUF1, Buffer (0x08){}) BUF1 = FWBT /* \_SB_.PCI0.LPC0.EC0_.FWBT */ CreateByteField (BUF1, Zero, FW0) CreateByteField (BUF1, One, FW1) CreateByteField (BUF1, 0x02, FW2) CreateByteField (BUF1, 0x03, FW3) CreateByteField (BUF1, 0x04, FW4) CreateByteField (BUF1, 0x05, FW5) CreateByteField (BUF1, 0x06, FW6) CreateByteField (BUF1, 0x07, FW7) DerefOf (GBUF [0x02]) [Zero] = FW0 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GBID.FW0_ */ DerefOf (GBUF [0x02]) [One] = FW1 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GBID.FW1_ */ DerefOf (GBUF [0x02]) [0x02] = FW2 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GBID.FW2_ */ DerefOf (GBUF [0x02]) [0x03] = FW3 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GBID.FW3_ */ DerefOf (GBUF [0x02]) [0x04] = FW4 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GBID.FW4_ */ DerefOf (GBUF [0x02]) [0x05] = FW5 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GBID.FW5_ */ DerefOf (GBUF [0x02]) [0x06] = FW6 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GBID.FW6_ */ DerefOf (GBUF [0x02]) [0x07] = FW7 /* \_SB_.PCI0.LPC0.EC0_.VPC0.GBID.FW7_ */ DerefOf (GBUF [0x03]) [Zero] = Zero Release (LFCM) } } Return (GBUF) /* \_SB_.PCI0.LPC0.EC0_.VPC0.GBID.GBUF */ } Name (APDT, Zero) Method (APPC, 1, Serialized) { APDT = Arg0 Return (Zero) } Method (DBSL, 0, NotSerialized) { Return (Package (0x10) { 0xC9, 0xAE, 0x95, 0x7E, 0x69, 0x56, 0x45, 0x36, 0x29, 0x1E, 0x15, 0x0E, 0x09, 0x06, 0x05, Zero }) } Method (SBSL, 1, Serialized) { If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { Local0 = Arg0 If ((Local0 == One)) { LCBV = 0x0E } If ((Local0 == 0x02)) { LCBV = 0x07 } Release (LFCM) } } Return (Zero) } Method (STHT, 1, Serialized) { Return (Zero) } } } Device (CIND) { Name (_HID, "CIND0C60") // _HID: Hardware ID Name (_CID, "PNP0C60" /* Display Sensor Device */) // _CID: Compatible ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((YG53 == One)) { Return (0x0F) } Return (Zero) } } Method (_REG, 2, NotSerialized) // _REG: Region Availability { If ((Arg0 == 0x03)) { ECAV = Arg1 } If (((Arg0 == 0x03) && (Arg1 == One))) { If ((TPOS == 0x40)) { Local0 = One } If ((TPOS == 0x80)) { Local0 = 0x02 } If ((TPOS == 0x50)) { Local0 = 0x03 } If ((TPOS == 0x60)) { Local0 = 0x04 } If ((TPOS == 0x61)) { Local0 = 0x05 } If ((TPOS == 0x70)) { Local0 = 0x06 } If ((Acquire (LFCM, 0xA000) == Zero)) { OSTY = Local0 LIDS = LSTE /* \_SB_.PCI0.LPC0.EC0_.LSTE */ Release (LFCM) } } } Method (CMFC, 0, Serialized) { Return (EDID) /* \EDID */ } Method (LFCI, 2, Serialized) { Return (OKRB) /* \OKRB */ } Method (_Q11, 0, NotSerialized) // _Qxx: EC Query { If (IGDS) { If ((^^^GP17.VGA.BRIL == 0x0C)) { BKLT = One } } P80H = 0x11 Notify (^^^GP17.VGA.LCD, 0x87) // Device-Specific Notify (VPC0, 0x80) // Status Change } Method (_Q12, 0, NotSerialized) // _Qxx: EC Query { If (IGDS) { If ((BKLT == One)) { BKLT = Zero } Else { P80H = 0x12 Notify (^^^GP17.VGA.LCD, 0x86) // Device-Specific Notify (VPC0, 0x80) // Status Change } } Else { P80H = 0x12 Notify (^^^GP17.VGA.LCD, 0x86) // Device-Specific Notify (VPC0, 0x80) // Status Change } } Method (_Q13, 0, NotSerialized) // _Qxx: EC Query { CreateWordField (XX11, Zero, SSZE) CreateByteField (XX11, 0x02, SMUF) CreateDWordField (XX11, 0x03, SMUD) SSZE = 0x07 SMUF = 0x05 If ((QUIE == 0x02)) { SMUD = 0x32C8 } Else { SMUD = 0x3A98 } ALIB (0x0C, XX11) P80H = 0x13 If ((QUIE == 0x02)) { SMBB = 0x36 SMBA = 0xCA } Else { SMBB = 0x35 SMBA = 0xCA } } Method (_Q15, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x15 If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { LIDS = LSTE /* \_SB_.PCI0.LPC0.EC0_.LSTE */ Release (LFCM) } } Notify (LID, 0x80) // Status Change } Method (_Q16, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x16 If (ECAV) { If ((Acquire (LFCM, 0xA000) == Zero)) { LIDS = LSTE /* \_SB_.PCI0.LPC0.EC0_.LSTE */ Release (LFCM) } } Notify (LID, 0x80) // Status Change } Method (_Q25, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x25 Notify (ADP0, 0x80) // Status Change Notify (BAT0, 0x80) // Status Change Notify (BAT0, 0x81) // Information Change } Method (_Q37, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x37 Sleep (0xC8) PWRS = One Notify (ADP0, 0x80) // Status Change Notify (BAT0, 0x80) // Status Change } Method (_Q38, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x38 Sleep (0xC8) PWRS = Zero Notify (ADP0, 0x80) // Status Change Notify (BAT0, 0x80) // Status Change } Method (_Q32, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x32 Notify (PWRB, 0x80) // Status Change } Method (_Q3E, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x3E Notify (^^^^I2CB.TPD0, 0x3E) // Reserved } Method (_Q3F, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x3F Notify (^^^^I2CB.TPD0, 0x3F) // Reserved } Method (_Q44, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x44 Notify (VPC0, 0x80) // Status Change } } Scope (\_SB) { Device (ADP0) { Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID Name (XX00, Buffer (0x03){}) Name (ACDC, 0xFF) Method (_STA, 0, NotSerialized) // _STA: Status { If ((ECON == One)) { Return (0x0F) } Return (Zero) } Method (_PSR, 0, NotSerialized) // _PSR: Power Source { If (^^PCI0.LPC0.EC0.ECAV) { If ((Acquire (^^PCI0.LPC0.EC0.LFCM, 0xA000) == Zero)) { Local0 = One Local0 = ^^PCI0.LPC0.EC0.ADPT /* \_SB_.PCI0.LPC0.EC0_.ADPT */ If (((Local0 != ACDC) || (ACDC == 0xFF))) { CreateWordField (XX00, Zero, SSZE) CreateByteField (XX00, 0x02, ACST) SSZE = 0x03 If (Local0) { P80H = 0xAC AFN4 (One) ACST = Zero } Else { P80H = 0xDC AFN4 (0x02) ACST = One } Sleep (0x64) ALIB (One, XX00) ACDC = Local0 } Release (^^PCI0.LPC0.EC0.LFCM) Return (Local0) } } } Method (_PCL, 0, NotSerialized) // _PCL: Power Consumer List { Return (Package (0x01) { _SB }) } } Device (LID) { Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((ECON == One)) { Return (0x0F) } Return (Zero) } Method (_LID, 0, NotSerialized) // _LID: Lid Status { Local0 = Zero If ((Acquire (^^PCI0.LPC0.EC0.LFCM, 0xA000) == Zero)) { Local0 = ^^PCI0.LPC0.EC0.LSTE /* \_SB_.PCI0.LPC0.EC0_.LSTE */ Release (^^PCI0.LPC0.EC0.LFCM) } Return (Local0) } } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((ECON == One)) { Return (0x0F) } Return (Zero) } } Device (WMI4) { Name (_HID, EisaId ("PNP0C14") /* Windows Management Instrumentation Device */) // _HID: Hardware ID Name (_UID, 0x04) // _UID: Unique ID Mutex (MWMI, 0x00) Name (_WDG, Buffer (0x28) { /* 0000 */ 0x76, 0x37, 0xA0, 0xC3, 0xAC, 0x51, 0xAA, 0x49, // v7...Q.I /* 0008 */ 0xAD, 0x0F, 0xF2, 0xF7, 0xD6, 0x2C, 0x3F, 0x3C, // .....,?< /* 0010 */ 0x41, 0x44, 0x03, 0x05, 0x21, 0x12, 0x90, 0x05, // AD..!... /* 0018 */ 0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0, // f....... /* 0020 */ 0xC9, 0x06, 0x29, 0x10, 0x42, 0x44, 0x01, 0x00 // ..).BD.. }) Name (ITEM, Package (0x03) { Package (0x03) { Zero, Zero, "BAT0 BatMaker" }, Package (0x03) { Zero, One, "BAT0 HwId " }, Package (0x03) { Zero, 0x02, "BAT0 MfgDate " } }) Method (WQAD, 1, NotSerialized) { If (^^PCI0.LPC0.EC0.ECAV) { If ((Acquire (^^PCI0.LPC0.EC0.LFCM, 0xA000) == Zero)) { Local0 = PSAG (Arg0) Local1 = DerefOf (ITEM [Local0]) Local2 = DerefOf (Local1 [Zero]) Local3 = DerefOf (Local1 [One]) Local4 = DerefOf (Local1 [0x02]) Local5 = BATD (Local2, Local3) Concatenate (Local4, ",", Local6) Concatenate (Local6, Local5, Local7) Release (^^PCI0.LPC0.EC0.LFCM) } } Return (Local7) } Method (PSAG, 1, NotSerialized) { Return (Arg0) } Method (BATD, 2, NotSerialized) { Name (STRB, Buffer (0x0A) { 0x00 // . }) Name (BUFR, Buffer (0x08){}) BUFR = ^^PCI0.LPC0.EC0.FWBT /* \_SB_.PCI0.LPC0.EC0_.FWBT */ CreateWordField (BUFR, Zero, MID0) CreateWordField (BUFR, 0x02, HID0) CreateWordField (BUFR, 0x04, FIR0) CreateWordField (BUFR, 0x06, DAT0) If ((Arg0 == Zero)) { If ((Arg1 == Zero)) { STRB = ToHexString (MID0) } If ((Arg1 == One)) { STRB = ToHexString (HID0) } If ((Arg1 == 0x02)) { Local0 = ^^PCI0.LPC0.EC0.B1DA /* \_SB_.PCI0.LPC0.EC0_.B1DA */ Name (DATB, Buffer (0x09) { "00000000" }) Local3 = 0x07 Local1 = (Local0 & 0x1F) While (Local1) { Divide (Local1, 0x0A, Local2, Local1) DATB [Local3] = (Local2 + 0x30) Local3-- } Local3 = 0x05 Local1 = ((Local0 & 0x01E0) >> 0x05) While (Local1) { Divide (Local1, 0x0A, Local2, Local1) DATB [Local3] = (Local2 + 0x30) Local3-- } Local3 = 0x03 Local1 = (((Local0 & 0xFE00) >> 0x09) + 0x07BC) While (Local1) { Divide (Local1, 0x0A, Local2, Local1) DATB [Local3] = (Local2 + 0x30) Local3-- } STRB = DATB /* \_SB_.WMI4.BATD.DATB */ } } Return (ToString (STRB, Ones)) } Name (WQBD, Buffer (0x0275) { /* 0000 */ 0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00, // FOMB.... /* 0008 */ 0x65, 0x02, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, // e....... /* 0010 */ 0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54, // DS...}.T /* 0018 */ 0x18, 0xD1, 0x82, 0x00, 0x01, 0x06, 0x18, 0x42, // .......B /* 0020 */ 0x10, 0x05, 0x10, 0x8A, 0x0D, 0x21, 0x02, 0x0B, // .....!.. /* 0028 */ 0x83, 0x50, 0x50, 0x18, 0x14, 0xA0, 0x45, 0x41, // .PP...EA /* 0030 */ 0xC8, 0x05, 0x14, 0x95, 0x02, 0x21, 0xC3, 0x02, // .....!.. /* 0038 */ 0x14, 0x0B, 0x70, 0x2E, 0x40, 0xBA, 0x00, 0xE5, // ..p.@... /* 0040 */ 0x28, 0x72, 0x0C, 0x22, 0x02, 0xF7, 0xEF, 0x0F, // (r.".... /* 0048 */ 0x31, 0xD0, 0x18, 0xA8, 0x50, 0x08, 0x89, 0x00, // 1...P... /* 0050 */ 0xA6, 0x42, 0xE0, 0x08, 0x41, 0xBF, 0x02, 0x10, // .B..A... /* 0058 */ 0x3A, 0x14, 0x20, 0x53, 0x80, 0x41, 0x01, 0x4E, // :. S.A.N /* 0060 */ 0x11, 0x44, 0x10, 0xA5, 0x65, 0x01, 0xBA, 0x05, // .D..e... /* 0068 */ 0xF8, 0x16, 0xA0, 0x1D, 0x42, 0x68, 0x91, 0x9A, // ....Bh.. /* 0070 */ 0x9F, 0x04, 0x81, 0x6A, 0x5B, 0x80, 0x45, 0x01, // ...j[.E. /* 0078 */ 0xB2, 0x41, 0x08, 0xA0, 0xC7, 0xC1, 0x44, 0x0E, // .A....D. /* 0080 */ 0x02, 0x25, 0x66, 0x10, 0x28, 0x9D, 0x73, 0x90, // .%f.(.s. /* 0088 */ 0x4D, 0x60, 0xE1, 0x9F, 0x4C, 0x94, 0xF3, 0x88, // M`..L... /* 0090 */ 0x92, 0xE0, 0xA8, 0x0E, 0x22, 0x42, 0xF0, 0x72, // ...."B.r /* 0098 */ 0x05, 0x48, 0x9E, 0x80, 0x34, 0x4F, 0x4C, 0xD6, // .H..4OL. /* 00A0 */ 0x07, 0xA1, 0x21, 0xB0, 0x11, 0xF0, 0x88, 0x12, // ..!..... /* 00A8 */ 0x40, 0x58, 0xA0, 0x75, 0x2A, 0x14, 0x0C, 0xCA, // @X.u*... /* 00B0 */ 0x03, 0x88, 0xE4, 0x8C, 0x15, 0x05, 0x6C, 0xAF, // ......l. /* 00B8 */ 0x13, 0x91, 0xC9, 0x81, 0x52, 0x49, 0x70, 0xA8, // ....RIp. /* 00C0 */ 0x61, 0x5A, 0xE2, 0xEC, 0x34, 0xB2, 0x13, 0x39, // aZ..4..9 /* 00C8 */ 0xB6, 0xA6, 0x87, 0x2C, 0x48, 0x26, 0x6D, 0x28, // ...,H&m( /* 00D0 */ 0xA8, 0xB1, 0x7B, 0x5A, 0x27, 0xE5, 0x99, 0x46, // ..{Z'..F /* 00D8 */ 0x3C, 0x28, 0xC3, 0x24, 0xF0, 0x28, 0x18, 0x1A, // <(.$.(.. /* 00E0 */ 0x27, 0x28, 0x0B, 0x42, 0x0E, 0x06, 0x8A, 0x02, // '(.B.... /* 00E8 */ 0x3C, 0x09, 0xCF, 0xB1, 0x78, 0x01, 0xC2, 0x67, // <...x..g /* 00F0 */ 0x4C, 0xA6, 0x1D, 0x23, 0x81, 0xCF, 0x04, 0x1E, // L..#.... /* 00F8 */ 0xE6, 0x31, 0x63, 0x47, 0x14, 0x2E, 0xE0, 0xF9, // .1cG.... /* 0100 */ 0x1C, 0x43, 0xE4, 0xB8, 0x87, 0x1A, 0xE3, 0x28, // .C.....( /* 0108 */ 0x22, 0x3F, 0x08, 0x60, 0x05, 0x1D, 0x04, 0x90, // "?.`.... /* 0110 */ 0x38, 0xFF, 0xFF, 0xE3, 0x89, 0x76, 0xDA, 0xC1, // 8....v.. /* 0118 */ 0x42, 0xC7, 0x39, 0xBF, 0xD0, 0x18, 0xD1, 0xE3, // B.9..... /* 0120 */ 0x40, 0xC9, 0x80, 0x90, 0x47, 0x01, 0x56, 0x61, // @...G.Va /* 0128 */ 0x35, 0x91, 0x04, 0xBE, 0x07, 0x74, 0x76, 0x12, // 5....tv. /* 0130 */ 0xD0, 0xA5, 0x21, 0x46, 0x6F, 0x08, 0xD2, 0x26, // ..!Fo..& /* 0138 */ 0xC0, 0x96, 0x00, 0x6B, 0x02, 0x8C, 0xDD, 0x06, // ...k.... /* 0140 */ 0x08, 0xCA, 0xD1, 0x36, 0x87, 0x22, 0x84, 0x28, // ...6.".( /* 0148 */ 0x21, 0xE2, 0x86, 0xAC, 0x11, 0x45, 0x10, 0x95, // !....E.. /* 0150 */ 0x41, 0x08, 0x35, 0x50, 0xD8, 0x28, 0xF1, 0x8D, // A.5P.(.. /* 0158 */ 0x13, 0x22, 0x48, 0x02, 0x8F, 0x1C, 0x77, 0x04, // ."H...w. /* 0160 */ 0xF0, 0xD8, 0x0E, 0xE8, 0x04, 0x4F, 0xE9, 0x71, // .....O.q /* 0168 */ 0xC1, 0x04, 0x9E, 0xF7, 0xC1, 0x1D, 0xEA, 0x21, // .......! /* 0170 */ 0x1C, 0x70, 0xD4, 0x18, 0xC7, 0xF1, 0x4C, 0x40, // .p....L@ /* 0178 */ 0x16, 0x2E, 0x0D, 0x20, 0x8A, 0x04, 0x8F, 0x3A, // ... ...: /* 0180 */ 0x32, 0xF8, 0x70, 0xE0, 0x41, 0x7A, 0x9E, 0x9E, // 2.p.Az.. /* 0188 */ 0x40, 0x90, 0x43, 0x38, 0x82, 0xC7, 0x86, 0xA7, // @.C8.... /* 0190 */ 0x02, 0x8F, 0x81, 0x5D, 0x17, 0x7C, 0x0E, 0xF0, // ...].|.. /* 0198 */ 0x31, 0x01, 0xEF, 0x1A, 0x50, 0xA3, 0x7E, 0x3A, // 1...P.~: /* 01A0 */ 0x60, 0x93, 0x0E, 0x87, 0x19, 0xAE, 0x87, 0x1D, // `....... /* 01A8 */ 0xEE, 0x04, 0x1E, 0x0E, 0x1E, 0x33, 0xF8, 0x91, // .....3.. /* 01B0 */ 0xC3, 0x83, 0xC3, 0xCD, 0xF0, 0x64, 0x8E, 0xAC, // .....d.. /* 01B8 */ 0x54, 0x01, 0x66, 0x4F, 0x08, 0x3A, 0x4D, 0xF8, // T.fO.:M. /* 01C0 */ 0xCC, 0xC1, 0x6E, 0x00, 0xE7, 0xD3, 0x33, 0x24, // ..n...3$ /* 01C8 */ 0x91, 0x3F, 0x08, 0xD4, 0xC8, 0x0C, 0xED, 0x69, // .?.....i /* 01D0 */ 0xBF, 0x7A, 0x18, 0xF2, 0xA1, 0xE0, 0xB0, 0x98, // .z...... /* 01D8 */ 0xD8, 0xB3, 0x07, 0x1D, 0x0F, 0xF8, 0xAF, 0x24, // .......$ /* 01E0 */ 0x0F, 0x1B, 0x9E, 0xBE, 0xE7, 0x6B, 0x82, 0x91, // .....k.. /* 01E8 */ 0x07, 0x8E, 0x1E, 0x88, 0xA1, 0x9F, 0x38, 0x0E, // ......8. /* 01F0 */ 0xE3, 0x34, 0x7C, 0x09, 0xF1, 0x39, 0xE0, 0xFF, // .4|..9.. /* 01F8 */ 0x1F, 0x24, 0xC6, 0x31, 0x79, 0x70, 0x3C, 0xD8, // .$.1yp<. /* 0200 */ 0xC8, 0xE9, 0x51, 0xC5, 0x47, 0x0A, 0x7E, 0xBE, // ..Q.G.~. /* 0208 */ 0xF0, 0x91, 0x82, 0x5D, 0x10, 0x9E, 0x1C, 0x0C, // ...].... /* 0210 */ 0x71, 0x38, 0x67, 0xE5, 0x13, 0x85, 0x0F, 0x2A, // q8g....* /* 0218 */ 0xB8, 0x13, 0x05, 0x5C, 0x85, 0xE8, 0xE4, 0x36, // ...\...6 /* 0220 */ 0x61, 0xB4, 0x67, 0x81, 0xC7, 0x09, 0x98, 0x07, // a.g..... /* 0228 */ 0x01, 0xF0, 0x8D, 0xDF, 0x07, 0x19, 0xB0, 0x4D, // .......M /* 0230 */ 0x09, 0x3B, 0x24, 0x78, 0x47, 0x19, 0xE0, 0x71, // .;$xG..q /* 0238 */ 0x32, 0xC1, 0x1D, 0x27, 0x3C, 0x04, 0x3E, 0x80, // 2..'<.>. /* 0240 */ 0x87, 0x90, 0x93, 0xB4, 0xD2, 0xA9, 0x21, 0xCF, // ......!. /* 0248 */ 0x3C, 0x60, 0x1B, 0x06, 0x57, 0x68, 0xD3, 0xA7, // <`..Wh.. /* 0250 */ 0x46, 0xA3, 0x56, 0x0D, 0xCA, 0xD4, 0x28, 0xD3, // F.V...(. /* 0258 */ 0xA0, 0x56, 0x9F, 0x4A, 0x8D, 0x19, 0xFB, 0xE1, // .V.J.... /* 0260 */ 0x58, 0xDC, 0xBB, 0x40, 0x07, 0x03, 0x0B, 0x7B, // X..@...{ /* 0268 */ 0x21, 0xE8, 0x88, 0xE0, 0x58, 0x20, 0x34, 0x08, // !...X 4. /* 0270 */ 0x9D, 0x40, 0xFC, 0xFF, 0x07 // .@... }) } } Mutex (PSMX, 0x00) } } OperationRegion (PIRQ, SystemIO, 0x0C00, 0x02) Field (PIRQ, ByteAcc, NoLock, Preserve) { PIDX, 8, PDAT, 8 } IndexField (PIDX, PDAT, ByteAcc, NoLock, Preserve) { PIRA, 8, PIRB, 8, PIRC, 8, PIRD, 8, PIRE, 8, PIRF, 8, PIRG, 8, PIRH, 8, Offset (0x0C), SIRA, 8, SIRB, 8, SIRC, 8, SIRD, 8, PIRS, 8, Offset (0x13), HDAD, 8, Offset (0x17), SDCL, 8, Offset (0x1A), SDIO, 8, Offset (0x30), USB1, 8, Offset (0x34), USB3, 8, Offset (0x41), SATA, 8, Offset (0x62), GIOC, 8, Offset (0x70), I2C0, 8, I2C1, 8, I2C2, 8, I2C3, 8, URT0, 8, URT1, 8 } OperationRegion (KBDD, SystemIO, 0x64, One) Field (KBDD, ByteAcc, NoLock, Preserve) { PD64, 8 } Method (DSPI, 0, NotSerialized) { INTA (0x1F) INTB (0x1F) INTC (0x1F) INTD (0x1F) Local1 = PD64 /* \_SB_.PD64 */ PIRE = 0x1F PIRF = 0x1F PIRG = 0x1F PIRH = 0x1F } Method (INTA, 1, NotSerialized) { PIRA = Arg0 If (PICM) { HDAD = Arg0 SDCL = Arg0 } } Method (INTB, 1, NotSerialized) { PIRB = Arg0 } Method (INTC, 1, NotSerialized) { PIRC = Arg0 If (PICM) { USB1 = Arg0 USB3 = Arg0 } } Method (INTD, 1, NotSerialized) { PIRD = Arg0 If (PICM) { SATA = Arg0 } } Name (PRS1, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {3,5,6,10,11} }) Name (BUFA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {15} }) Device (LNKA) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((PIRA && (PIRA != 0x1F))) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { INTA (0x1F) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRA) /* \_SB_.PIRA */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRA = Local0 } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((PIRB && (PIRB != 0x1F))) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { INTB (0x1F) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRB) /* \_SB_.PIRB */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRB = Local0 } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x03) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((PIRC && (PIRC != 0x1F))) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { INTC (0x1F) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRC) /* \_SB_.PIRC */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRC = Local0 } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x04) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((PIRD && (PIRD != 0x1F))) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { INTD (0x1F) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRD) /* \_SB_.PIRD */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRD = Local0 } } Device (LNKE) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x05) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((PIRE && (PIRE != 0x1F))) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRE = 0x1F } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRE) /* \_SB_.PIRE */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRE = Local0 } } Device (LNKF) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x06) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((PIRF && (PIRF != 0x1F))) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRF = 0x1F } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRF) /* \_SB_.PIRF */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRF = Local0 } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x07) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((PIRG && (PIRG != 0x1F))) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRG = 0x1F } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRG) /* \_SB_.PIRG */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRG = Local0 } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x08) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((PIRH && (PIRH != 0x1F))) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRH = 0x1F } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRH) /* \_SB_.PIRH */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRH = Local0 } } Method (GSMI, 1, NotSerialized) { APMD = Arg0 APMC = 0xE4 Sleep (0x02) } Method (S80H, 1, NotSerialized) { P80H = Arg0 } Method (BSMI, 1, NotSerialized) { APMD = Arg0 APMC = 0xBE Sleep (One) } } Name (TSOS, 0x75) If (CondRefOf (\_OSI)) { If (_OSI ("Windows 2009")) { TSOS = 0x50 } If (_OSI ("Windows 2015")) { TSOS = 0x70 } If (_OSI ("Linux")) { TSOS = 0x80 } } Scope (_SB) { OperationRegion (SMIC, SystemMemory, 0xFED80000, 0x00800000) Field (SMIC, ByteAcc, NoLock, Preserve) { Offset (0x36A), SMIB, 8 } OperationRegion (SSMI, SystemIO, SMIB, 0x02) Field (SSMI, AnyAcc, NoLock, Preserve) { SMIW, 16 } OperationRegion (ECMC, SystemIO, 0x72, 0x02) Field (ECMC, AnyAcc, NoLock, Preserve) { ECMI, 8, ECMD, 8 } IndexField (ECMI, ECMD, ByteAcc, NoLock, Preserve) { Offset (0x08), FRTB, 32 } OperationRegion (FRTP, SystemMemory, FRTB, 0x0100) Field (FRTP, AnyAcc, NoLock, Preserve) { PEBA, 32, , 5, IC0E, 1, IC1E, 1, IC2E, 1, IC3E, 1, IC4E, 1, IC5E, 1, UT0E, 1, UT1E, 1, , 1, , 1, ST_E, 1, UT2E, 1, , 1, EMMD, 2, , 3, XHCE, 1, , 1, , 1, UT3E, 1, ESPI, 1, EMME, 1, Offset (0x08), PCEF, 1, , 4, IC0D, 1, IC1D, 1, IC2D, 1, IC3D, 1, IC4D, 1, IC5D, 1, UT0D, 1, UT1D, 1, , 1, , 1, ST_D, 1, UT2D, 1, , 1, EHCD, 1, , 4, XHCD, 1, SD_D, 1, , 1, UT3D, 1, , 1, EMD3, 1, , 2, S03D, 1, FW00, 16, FW01, 32, FW02, 16, FW03, 32, SDS0, 8, SDS1, 8, CZFG, 1, Offset (0x20), SD10, 32, EH10, 32, XH10, 32, STBA, 32 } OperationRegion (FCFG, SystemMemory, PEBA, 0x01000000) Field (FCFG, DWordAcc, NoLock, Preserve) { Offset (0xA3044), IPDE, 32, IMPE, 32, Offset (0xA3078), , 2, LDQ0, 1, Offset (0xA30CB), , 7, AUSS, 1, Offset (0xA30D0), , 13, LCLK, 2 } OperationRegion (IOMX, SystemMemory, 0xFED80D00, 0x0100) Field (IOMX, AnyAcc, NoLock, Preserve) { Offset (0x15), IM15, 8, IM16, 8, Offset (0x1F), IM1F, 8, IM20, 8, Offset (0x44), IM44, 8, Offset (0x46), IM46, 8, Offset (0x4A), IM4A, 8, IM4B, 8, Offset (0x57), IM57, 8, IM58, 8, Offset (0x68), IM68, 8, IM69, 8, IM6A, 8, IM6B, 8, Offset (0x6D), IM6D, 8 } OperationRegion (FMIS, SystemMemory, 0xFED80E00, 0x0100) Field (FMIS, AnyAcc, NoLock, Preserve) { Offset (0x40), , 13, I24M, 1 } OperationRegion (FGIO, SystemMemory, 0xFED81500, 0x0300) Field (FGIO, AnyAcc, NoLock, Preserve) { Offset (0xA8), , 22, O042, 1, Offset (0x164), , 22, O089, 1 } OperationRegion (FACR, SystemMemory, 0xFED81E00, 0x0100) Field (FACR, AnyAcc, NoLock, Preserve) { Offset (0x80), , 28, RD28, 1, , 1, RQTY, 1, Offset (0x84), , 28, SD28, 1, , 1, Offset (0xA0), PG1A, 1 } OperationRegion (EMMX, SystemMemory, 0xFEDD5800, 0x0130) Field (EMMX, AnyAcc, NoLock, Preserve) { Offset (0xD0), , 17, FC18, 1, FC33, 1, , 7, CD_T, 1, WP_T, 1 } OperationRegion (EMMB, SystemMemory, 0xFEDD5800, 0x0130) Field (EMMB, AnyAcc, NoLock, Preserve) { Offset (0xA4), E0A4, 32, E0A8, 32, Offset (0xB0), E0B0, 32, Offset (0xD0), E0D0, 32, Offset (0x116), E116, 32 } Name (SVBF, Buffer (0x0100) { 0x00 // . }) CreateDWordField (SVBF, Zero, S0A4) CreateDWordField (SVBF, 0x04, S0A8) CreateDWordField (SVBF, 0x08, S0B0) CreateDWordField (SVBF, 0x0C, S0D0) CreateDWordField (SVBF, 0x10, S116) Method (SECR, 0, Serialized) { S116 = E116 /* \_SB_.E116 */ RQTY = Zero RD28 = One Local0 = SD28 /* \_SB_.SD28 */ While (Local0) { Local0 = SD28 /* \_SB_.SD28 */ } } Method (RECR, 0, Serialized) { E116 = S116 /* \_SB_.S116 */ } OperationRegion (LUIE, SystemMemory, 0xFEDC0020, 0x04) Field (LUIE, AnyAcc, NoLock, Preserve) { IER0, 1, IER1, 1, IER2, 1, IER3, 1, UOL0, 1, UOL1, 1, UOL2, 1, UOL3, 1, WUR0, 2, WUR1, 2, WUR2, 2, WUR3, 2 } Method (FRUI, 1, Serialized) { If ((Arg0 == Zero)) { Return (IUA0) /* \_SB_.IUA0 */ } If ((Arg0 == One)) { Return (IUA1) /* \_SB_.IUA1 */ } If ((Arg0 == 0x02)) { Return (IUA2) /* \_SB_.IUA2 */ } If ((Arg0 == 0x03)) { Return (IUA3) /* \_SB_.IUA3 */ } } Method (SRAD, 2, Serialized) { Local0 = (Arg0 << One) Local0 += 0xFED81E40 OperationRegion (ADCR, SystemMemory, Local0, 0x02) Field (ADCR, ByteAcc, NoLock, Preserve) { ADTD, 2, ADPS, 1, ADPD, 1, ADSO, 1, ADSC, 1, ADSR, 1, ADIS, 1, ADDS, 3 } ADIS = One ADSR = Zero Stall (Arg1) ADSR = One ADIS = Zero Stall (Arg1) } Method (DSAD, 2, Serialized) { Local0 = (Arg0 << One) Local0 += 0xFED81E40 OperationRegion (ADCR, SystemMemory, Local0, 0x02) Field (ADCR, ByteAcc, NoLock, Preserve) { ADTD, 2, ADPS, 1, ADPD, 1, ADSO, 1, ADSC, 1, ADSR, 1, ADIS, 1, ADDS, 3 } If ((Arg1 != ADTD)) { If ((Arg1 == Zero)) { ADTD = Zero ADPD = One Local0 = ADDS /* \_SB_.DSAD.ADDS */ While ((Local0 != 0x07)) { Local0 = ADDS /* \_SB_.DSAD.ADDS */ } } If ((Arg1 == 0x03)) { ADPD = Zero Local0 = ADDS /* \_SB_.DSAD.ADDS */ While ((Local0 != Zero)) { Local0 = ADDS /* \_SB_.DSAD.ADDS */ } ADTD = 0x03 } } } Method (HSAD, 2, Serialized) { Local3 = (One << Arg0) Local0 = (Arg0 << One) Local0 += 0xFED81E40 OperationRegion (ADCR, SystemMemory, Local0, 0x02) Field (ADCR, ByteAcc, NoLock, Preserve) { ADTD, 2, ADPS, 1, ADPD, 1, ADSO, 1, ADSC, 1, ADSR, 1, ADIS, 1, ADDS, 3 } If ((Arg1 != ADTD)) { If ((Arg1 == Zero)) { ADTD = Zero ADPD = One Local0 = ADDS /* \_SB_.HSAD.ADDS */ While ((Local0 != 0x07)) { Local0 = ADDS /* \_SB_.HSAD.ADDS */ } RQTY = One RD28 = One Local0 = SD28 /* \_SB_.SD28 */ While (!Local0) { Local0 = SD28 /* \_SB_.SD28 */ } } If ((Arg1 == 0x03)) { RQTY = Zero RD28 = One Local0 = SD28 /* \_SB_.SD28 */ While (Local0) { Local0 = SD28 /* \_SB_.SD28 */ } ADPD = Zero Local0 = ADDS /* \_SB_.HSAD.ADDS */ While ((Local0 != Zero)) { Local0 = ADDS /* \_SB_.HSAD.ADDS */ } ADTD = 0x03 } } } OperationRegion (FPIC, SystemIO, 0x0C00, 0x02) Field (FPIC, AnyAcc, NoLock, Preserve) { FPII, 8, FPID, 8 } IndexField (FPII, FPID, ByteAcc, NoLock, Preserve) { Offset (0xF4), IUA0, 8, IUA1, 8, Offset (0xF8), IUA2, 8, IUA3, 8 } Device (GPIO) { Name (_HID, "AMDI0030") // _HID: Hardware ID Name (_CID, "AMDI0030") // _CID: Compatible ID Name (_UID, Zero) // _UID: Unique ID Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (RBUF, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, ) { 0x00000007, } Memory32Fixed (ReadWrite, 0xFED81500, // Address Base 0x00000400, // Address Length ) }) Return (RBUF) /* \_SB_.GPIO._CRS.RBUF */ } Method (_STA, 0, NotSerialized) // _STA: Status { If ((TSOS >= 0x70)) { Return (0x0F) } Else { Return (Zero) } } } Device (I2CA) { Name (_HID, "AMDI0011") // _HID: Hardware ID Name (_UID, Zero) // _UID: Unique ID Name (_ADR, Zero) // _ADR: Address Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IRQ (Edge, ActiveHigh, Exclusive, ) {10} Memory32Fixed (ReadWrite, 0xFEDC2000, // Address Base 0x00001000, // Address Length ) }) Name (_DEP, Package (0x01) // _DEP: Dependencies { ^PCI0.GP17.MP2C }) Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (RSET, 0, NotSerialized) { SRAD (0x05, 0xC8) } } Device (I2CB) { Name (_HID, "AMDI0011") // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Name (_ADR, One) // _ADR: Address Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IRQ (Edge, ActiveHigh, Exclusive, ) {11} Memory32Fixed (ReadWrite, 0xFEDC3000, // Address Base 0x00001000, // Address Length ) }) Name (_DEP, Package (0x01) // _DEP: Dependencies { ^PCI0.GP17.MP2C }) Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (RSET, 0, NotSerialized) { SRAD (0x06, 0xC8) } } Device (I2CD) { Name (_HID, "AMDI0010") // _HID: Hardware ID Name (_UID, 0x03) // _UID: Unique ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IRQ (Edge, ActiveHigh, Exclusive, ) {6} Memory32Fixed (ReadWrite, 0xFEDC5000, // Address Base 0x00001000, // Address Length ) }) Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (RSET, 0, NotSerialized) { SRAD (0x08, 0xC8) } Method (_S0W, 0, NotSerialized) // _S0W: S0 Device Wake State { If ((IC3D && IC3E)) { Return (0x04) } Else { Return (Zero) } } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { If ((IC3D && IC3E)) { DSAD (0x08, Zero) } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { If ((IC3D && IC3E)) { DSAD (0x08, 0x03) } } } Name (D0ST, One) Name (D3ST, One) PowerResource (P0ST, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) // _STA: Status { Return (D0ST) /* \_SB_.D0ST */ } Method (_ON, 0, NotSerialized) // _ON_: Power On { D0ST = One } Method (_OFF, 0, NotSerialized) // _OFF: Power Off { D0ST = Zero } } PowerResource (P3ST, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) // _STA: Status { Return (D3ST) /* \_SB_.D3ST */ } Method (_ON, 0, NotSerialized) // _ON_: Power On { D3ST = One } Method (_OFF, 0, NotSerialized) // _OFF: Power Off { D3ST = Zero } } } Scope (_SB.PCI0.GP18.SATA) { Name (_PR0, Package (0x01) // _PR0: Power Resources for D0 { P0ST }) Name (_PR3, Package (0x01) // _PR3: Power Resources for D3hot { P3ST }) Method (_S0W, 0, NotSerialized) // _S0W: S0 Device Wake State { If ((ST_D == One)) { Return (0x04) } Else { Return (Zero) } } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { If ((ST_D == One)) { IO80 = 0x88 SMIW = 0xD6 } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { If ((ST_D == One)) { IO80 = 0x77 SMIW = 0xD5 } } } Scope (_SB.I2CA) { Device (TPNL) { Name (_HID, "MSFT0002") // _HID: Hardware ID Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */) // _CID: Compatible ID Name (_UID, 0x04) // _UID: Unique ID Method (_INI, 0, NotSerialized) // _INI: Initialize { If ((TPNP == 0x517A)) { _HID = "WCOM517A" Return (Zero) } If ((TPNP == 0x517B)) { _HID = "WCOM517B" Return (Zero) } If ((TPNP == 0x517C)) { _HID = "WCOM517C" Return (Zero) } If ((TPNP == 0x517D)) { _HID = "WCOM517D" Return (Zero) } If ((TPNP == 0x517E)) { _HID = "WCOM517E" Return (Zero) } If ((TPNP == 0x517F)) { _HID = "WCOM517F" Return (Zero) } Return (Zero) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (RBUF, ResourceTemplate () { I2cSerialBusV2 (0x000A, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.I2CA", 0x00, ResourceConsumer, , Exclusive, ) GpioInt (Level, ActiveLow, Shared, PullUp, 0x0000, "\\_SB.GPIO", 0x00, ResourceConsumer, , ) { // Pin list 0x005A } }) Return (RBUF) /* \_SB_.I2CA.TPNL._CRS.RBUF */ } Method (_STA, 0, NotSerialized) // _STA: Status { If ((TPNV == Zero)) { Return (Zero) } Return (0x0F) } Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake { If (Arg0){} Else { } } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */)) { Switch (ToInteger (Arg2)) { Case (Zero) { Switch (ToInteger (Arg1)) { Case (One) { Return (Buffer (One) { 0x03 // . }) } Default { Return (Buffer (One) { 0x00 // . }) } } } Case (One) { Return (One) } Default { Return (Zero) } } } Else { Return (Buffer (One) { 0x00 // . }) } } } } Scope (_SB.I2CD) { Device (ECSS) { OperationRegion (BOID, SystemMemory, 0xFED81538, 0x04) Field (BOID, ByteAcc, NoLock, Preserve) { Offset (0x02), ID5V, 1 } Name (_HID, EisaId ("ITE8396")) // _HID: Hardware ID Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */) // _CID: Compatible ID Name (_UID, One) // _UID: Unique ID Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (RBUF, ResourceTemplate () { I2cSerialBusV2 (0x0050, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.I2CD", 0x00, ResourceConsumer, , Exclusive, ) GpioInt (Level, ActiveHigh, Shared, PullNone, 0x0000, "\\_SB.GPIO", 0x00, ResourceConsumer, , ) { // Pin list 0x0055 } }) Return (RBUF) /* \_SB_.I2CD.ECSS._CRS.RBUF */ } Method (_STA, 0, NotSerialized) // _STA: Status { If ((ID5V == Zero)) { Return (Zero) } Return (0x0F) } Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake { If (Arg0){} Else { } } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */)) { Switch (ToInteger (Arg2)) { Case (Zero) { Switch (ToInteger (Arg1)) { Case (One) { Return (Buffer (One) { 0x03 // . }) } Default { Return (Buffer (One) { 0x00 // . }) } } } Case (One) { Return (One) } Default { Return (Zero) } } } Else { Return (Buffer (One) { 0x00 // . }) } } } } Scope (_SB.I2CB) { Device (TPD0) { Name (_HID, "MSFT0001") // _HID: Hardware ID Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */) // _CID: Compatible ID Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method { If ((Arg0 == ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */)) { If ((Arg2 == Zero)) { If ((Arg1 == One)) { Return (Buffer (One) { 0x03 // . }) } } If ((Arg2 == One)) { If ((TPTY == One)) { Return (One) } If (((TPTY == 0x02) || (TPTY == 0x03))) { Return (0x20) } } } Return (Buffer (One) { 0x00 // . }) } Method (_STA, 0, NotSerialized) // _STA: Status { If ((TPTY == Zero)) { Return (Zero) } Else { Return (0x0F) } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If ((TPTY == One)) { Name (SBFB, ResourceTemplate () { I2cSerialBusV2 (0x0015, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.I2CB", 0x00, ResourceConsumer, , Exclusive, ) }) } If ((TPTY == 0x03)) { Name (SBFA, ResourceTemplate () { I2cSerialBusV2 (0x002A, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.I2CB", 0x00, ResourceConsumer, , Exclusive, ) }) } If ((TPTY == 0x02)) { Name (SBFS, ResourceTemplate () { I2cSerialBusV2 (0x002C, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.I2CB", 0x00, ResourceConsumer, , Exclusive, ) }) } Name (SBFI, ResourceTemplate () { GpioInt (Level, ActiveLow, ExclusiveAndWake, PullUp, 0x0000, "\\_SB.GPIO", 0x00, ResourceConsumer, , ) { // Pin list 0x0059 } }) If ((TPTY == One)) { Return (ConcatenateResTemplate (SBFB, SBFI)) } If ((TPTY == 0x03)) { Return (ConcatenateResTemplate (SBFA, SBFI)) } If ((TPTY == 0x02)) { Return (ConcatenateResTemplate (SBFS, SBFI)) } } Method (TPRD, 0, Serialized) { Return (^^^PCI0.LPC0.EC0.ECTP) /* \_SB_.PCI0.LPC0.EC0_.ECTP */ } Method (TPWR, 1, Serialized) { ^^^PCI0.LPC0.EC0.ECTP = Arg0 } } } }