/* * Intel ACPI Component Architecture * AML Disassembler version 20061109 * * Disassembly of /tmp/DSDT.aml, Fri Jul 6 00:40:01 2007 * * * Original Table Header: * Signature "DSDT" * Length 0x000060F1 (24817) * Revision 0x01 * OEM ID "Sony" * OEM Table ID "VAIO" * OEM Revision 0x20070424 (537330724) * Creator ID "PTL " * Creator Revision 0x20050624 (537200164) */ DefinitionBlock ("/tmp/DSDT.aml", "DSDT", 1, "Sony", "VAIO", 0x20070424) { External (PDC1) External (PDC0) External (CFGD) External (\_PR_.CPU0._PPC) OperationRegion (PRT0, SystemIO, 0x80, 0x04) Field (PRT0, DWordAcc, Lock, Preserve) { P80H, 32 } OperationRegion (S_IO, SystemIO, 0x06B0, 0x11) Field (S_IO, ByteAcc, NoLock, Preserve) { PMS0, 8, PME0, 8, PMS1, 8, PMS2, 8, PMS3, 8, PME1, 8, PME2, 8, PME3, 8, SMS1, 8, SMS2, 8, SME1, 8, SME2, 8, RT10, 1, RT11, 1, , 1, RT13, 1, Offset (0x0E), RT30, 1, RT31, 1, RT32, 1, RT33, 1, RT34, 1, RT35, 1, RT36, 1, RT37, 1, Offset (0x10), DLPC, 1, CK33, 1, CK14, 1 } OperationRegion (IO_T, SystemIO, 0x0800, 0x10) Field (IO_T, ByteAcc, NoLock, Preserve) { Offset (0x08), TRP0, 8 } OperationRegion (PMIO, SystemIO, 0x1000, 0x80) Field (PMIO, ByteAcc, NoLock, Preserve) { Offset (0x42), , 1, GPEC, 1 } OperationRegion (GPIO, SystemIO, 0x1180, 0x3C) Field (GPIO, ByteAcc, NoLock, Preserve) { GU00, 8, GU01, 8, GU02, 8, GU03, 8, GIO0, 8, GIO1, 8, GIO2, 8, GIO3, 8, Offset (0x0C), GL00, 8, , 4, GP12, 1, Offset (0x0E), GL02, 8, GL03, 8, Offset (0x18), GB00, 8, GB01, 8, GB02, 8, GB03, 8, Offset (0x2C), GIV0, 8, GIV1, 8, GIV2, 8, GIV3, 8, GU04, 8, GU05, 8, GU06, 8, GU07, 8, GIO4, 8, GIO5, 8, GIO6, 8, GIO7, 8, , 7, GP39, 1, GL05, 8, GL06, 8, GL07, 8 } OperationRegion (GNVS, SystemMemory, 0x3F6909F7, 0x0100) Field (GNVS, AnyAcc, Lock, Preserve) { OSYS, 16, SMIF, 8, PRM0, 8, PRM1, 8, SCIF, 8, PRM2, 8, PRM3, 8, LCKF, 8, PRM4, 8, PRM5, 8, P80D, 32, Offset (0x10), Offset (0x11), DBGS, 8, LINX, 8, Offset (0x14), ACTT, 8, PSVT, 8, TC1V, 8, TC2V, 8, TSPV, 8, CRTT, 8, DTSE, 8, DTS1, 8, DTS2, 8, Offset (0x1E), BNUM, 8, B0SC, 8, B1SC, 8, B2SC, 8, B0SS, 8, B1SS, 8, B2SS, 8, Offset (0x28), APIC, 8, MPEN, 8, Offset (0x2B), PPCM, 8, PCP0, 8, PCP1, 8, Offset (0x32), NATP, 8, CMAP, 8, CMBP, 8, LPTP, 8, FDCP, 8, CMCP, 8, CIRP, 8, Offset (0x3C), IGDS, 8, TLST, 8, CADL, 8, PADL, 8, CSTE, 16, NSTE, 16, SSTE, 16, NDID, 8, DID1, 32, DID2, 32, DID3, 32, DID4, 32, DID5, 32, Offset (0x67), BLCS, 8, BRTL, 8, ALSE, 8, ALAF, 8, LLOW, 8, LHIH, 8, Offset (0x6E), EMAE, 8, EMAP, 16, EMAL, 16, Offset (0x74), MEFE, 8, Offset (0x78), TPMP, 8, TPME, 8, Offset (0x82), GTF0, 56, GTF2, 56, IDEM, 8 } OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000) Field (RCRB, DWordAcc, Lock, Preserve) { Offset (0x1000), Offset (0x3000), Offset (0x3404), HPAS, 2, , 5, HPAE, 1, Offset (0x3418), , 1, PATD, 1, SATD, 1, SMBD, 1, HDAD, 1, A97D, 1, Offset (0x341A), RP1D, 1, RP2D, 1, RP3D, 1, RP4D, 1, RP5D, 1, RP6D, 1 } Mutex (MUTX, 0x00) Name (_S0, Package (0x03) { 0x00, 0x00, 0x00 }) Name (_S3, Package (0x03) { 0x05, 0x05, 0x00 }) Name (_S4, Package (0x03) { 0x06, 0x06, 0x00 }) Name (_S5, Package (0x03) { 0x07, 0x07, 0x00 }) Scope (\_PR) { Processor (CPU0, 0x00, 0x00001010, 0x06) {} Processor (CPU1, 0x01, 0x00001010, 0x06) {} } Name (\DSEN, 0x01) Name (\ECON, 0x00) Name (\GPIC, 0x00) Name (\CTYP, 0x00) Name (\L01C, 0x00) Name (\VFN0, 0x00) Name (\ASPM, 0x00) Method (\_PIC, 1, NotSerialized) { Store (Arg0, GPIC) } Method (_PTS, 1, NotSerialized) { Store (0x00, P80D) If (LEqual (Arg0, 0x03)) {} If (LEqual (Arg0, 0x05)) { \_SB.PHSR (0x4B) } Store (\_SB.PCI0.LPCB.EC0.DOKD, \_SB.PCI0.LPCB.EC0.DCKB) Store (\_SB.PCI0.LPCB.EC0.BT1A, \_SB.PCI0.LPCB.EC0.BT1B) Store (\_SB.PCI0.LPCB.EC0.BT2A, \_SB.PCI0.LPCB.EC0.BT2B) Store (\_SB.PCI0.LPCB.EC0.ACAT, \_SB.PCI0.LPCB.EC0.ACAB) If (LEqual (Arg0, 0x03)) { Store (\_SB.PCI0.LPCB.SPIC._CRS (), \_SB.PCI0.LPCB.SPIC.SSRC) If (And (\_SB.PCI0.LPCB.SNC.LRST, 0x04)) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { PHSW (0xD5, 0x9E, 0x80) } Else { Store (0x01, \_SB.PCI0.LPCB.EC0.LIDE) } } } If (LEqual (Arg0, 0x04)) { Store (\_SB.PCI0.LPCB.SPIC._CRS (), \_SB.PCI0.LPCB.SPIC.SSRC) If (And (\_SB.PCI0.LPCB.SNC.LRST, 0x02)) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { PHSW (0xD5, 0x9E, 0x80) } Else { Store (0x01, \_SB.PCI0.LPCB.EC0.LIDE) } } } If (LEqual (Arg0, 0x05)) { If (And (\_SB.PCI0.LPCB.SNC.LRST, 0x01)) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { PHSW (0xD5, 0x9E, 0x80) } Else { Store (0x01, \_SB.PCI0.LPCB.EC0.LIDE) } } } If (LEqual (DBGS, 0x00)) { Store (0x00, RT10) Store (0x20, PME1) Store (0x01, PME0) Store (0x20, PMS1) Store (0x01, PMS0) } } Method (_WAK, 1, NotSerialized) { If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04))) { If (And (CFGD, 0x01000000)) { If (CondRefOf (\_OSI, Local0)) { If (LNot (\_OSI ("Windows 2001 SP2"))) { If (And (CFGD, 0xF0)) { TRAP (0x3D) } } } } } If (LEqual (RP3D, 0x00)) { Notify (\_SB.PCI0.RP03, 0x00) } If (LEqual (RP4D, 0x00)) { Notify (\_SB.PCI0.RP04, 0x00) } Store (\_SB.PCI0.LPCB.EC0.WUP0, \_SB.PCI0.LPCB.EC0.WUP1) If (LEqual (Arg0, 0x03)) { \_SB.PCI0.LPCB.SPIC._SRS (\_SB.PCI0.LPCB.SPIC.SSRC) If (PHS (0xC7)) { Notify (\_SB.PCI0.RP01, 0x02) Notify (\_SB.PCI0.RP02, 0x02) Notify (\_SB.PCI0.RP04, 0x02) } If (\_SB.PCI0.LPCB.EC0.BT1A) { Notify (\_SB.PCI0.LPCB.EC0.BAT1, 0x81) } If (LNotEqual (\_SB.PCI0.LPCB.EC0.WUP1, 0x01)) { Notify (\_SB.PWRB, 0x02) } Store (0x00, \_SB.PCI0.LPCB.EC0.UDRQ) If (\_SB.PCI0.LPCB.EC0.DCKB) { If (\_SB.PCI0.LPCB.EC0.DOKD) { Store (0x01, \_SB.PCI0.LPCB.EC0.IUSE) If (LEqual (\_SB.PCI0.LPCB.EC0.WUP1, 0x02)) { Store (0x01, \_SB.PCI0.LPCB.EC0.UDRQ) Notify (\_SB.DOCK, 0x03) } } Else { Store (0x00, \_SB.PCI0.LPCB.EC0.IUSE) Notify (\_SB.DOCK, 0x00) Notify (\_SB.PCI0.RP04, 0x00) Notify (\_SB.PCI0, 0x01) } } Else { If (\_SB.PCI0.LPCB.EC0.DOKD) { Store (0x01, \_SB.PCI0.LPCB.EC0.IUSE) If (LEqual (\_SB.PCI0.LPCB.EC0.WUP1, 0x02)) {} Else { Notify (\_SB.DOCK, 0x00) } } } If (LEqual (0x00, ACTT)) {} } If (LEqual (Arg0, 0x04)) { \_SB.PCI0.LPCB.SPIC._SRS (\_SB.PCI0.LPCB.SPIC.SSRC) If (LEqual (\_SB.PCI0.LPCB.EC0.BAT1._STA (), 0x1F)) { Notify (\_SB.PCI0.LPCB.EC0.BAT1, 0x81) } Notify (\_SB.PWRB, 0x02) Store (0x00, \_SB.PCI0.LPCB.EC0.UDRQ) If (\_SB.PCI0.LPCB.EC0.DCKB) { If (\_SB.PCI0.LPCB.EC0.DOKD) { If (LEqual (\_SB.PCI0.LPCB.EC0.WUP1, 0x02)) { Store (0x01, \_SB.PCI0.LPCB.EC0.UDRQ) Notify (\_SB.DOCK, 0x03) } } Else { Notify (\_SB.DOCK, 0x00) Notify (\_SB.PCI0.RP04, 0x00) Notify (\_SB.PCI0, 0x01) } } Else { If (\_SB.PCI0.LPCB.EC0.DOKD) { If (LEqual (\_SB.PCI0.LPCB.EC0.WUP1, 0x02)) {} Else { Notify (\_SB.DOCK, 0x00) } } } } If (LEqual (OSYS, 0x07D2)) { If (And (CFGD, 0x01)) { If (LGreater (\_PR.CPU0._PPC, 0x00)) { Subtract (\_PR.CPU0._PPC, 0x01, \_PR.CPU0._PPC) PNOT () Add (\_PR.CPU0._PPC, 0x01, \_PR.CPU0._PPC) PNOT () } Else { Add (\_PR.CPU0._PPC, 0x01, \_PR.CPU0._PPC) PNOT () Subtract (\_PR.CPU0._PPC, 0x01, \_PR.CPU0._PPC) PNOT () } } } Return (Package (0x02) { 0x00, 0x00 }) } Scope (\_GPE) { Method (_L01, 0, NotSerialized) { Add (L01C, 0x01, L01C) Sleep (0x64) If (LAnd (LEqual (RP1D, 0x00), \_SB.PCI0.RP01.HPCS)) { If (\_SB.PCI0.RP01.PDC1) { Store (0x01, \_SB.PCI0.RP01.PDC1) Store (0x01, \_SB.PCI0.RP01.HPCS) } Else { Store (0x01, \_SB.PCI0.RP01.HPCS) } } If (LAnd (LEqual (RP2D, 0x00), \_SB.PCI0.RP02.HPCS)) { If (\_SB.PCI0.RP02.PDC2) { Store (0x01, \_SB.PCI0.RP02.PDC2) Store (0x01, \_SB.PCI0.RP02.HPCS) } Else { Store (0x01, \_SB.PCI0.RP02.HPCS) } } If (LAnd (LEqual (RP3D, 0x00), \_SB.PCI0.RP03.HPCS)) { If (\_SB.PCI0.RP03.PDC3) { Store (0x01, \_SB.PCI0.RP03.PDC3) Store (0x01, \_SB.PCI0.RP03.HPCS) Notify (\_SB.PCI0.RP03, 0x00) } Else { Store (0x01, \_SB.PCI0.RP03.HPCS) } } If (LAnd (LEqual (RP4D, 0x00), \_SB.PCI0.RP04.HPCS)) { If (\_SB.PCI0.RP04.PDC4) { Store (0x01, \_SB.PCI0.RP04.PDC4) Store (0x01, \_SB.PCI0.RP04.HPCS) } Else { Store (0x01, \_SB.PCI0.RP04.HPCS) } } } Method (_L02, 0, NotSerialized) { Store (0x00, GPEC) } Method (_L03, 0, NotSerialized) { Notify (\_SB.PCI0.USB1, 0x02) } Method (_L04, 0, NotSerialized) { Notify (\_SB.PCI0.USB2, 0x02) } Method (_L05, 0, NotSerialized) { If (HDAD) { Notify (\_SB.PCI0.MODM, 0x02) } Else { Notify (\_SB.PCI0.HDEF, 0x02) } } Method (_L07, 0, NotSerialized) { Store (0x20, \_SB.PCI0.SBUS.HSTS) } Method (_L08, 0, NotSerialized) { } Method (_L09, 0, NotSerialized) { If (\_SB.PCI0.RP01.PSP1) { Store (0x01, \_SB.PCI0.RP01.PSP1) Store (0x01, \_SB.PCI0.RP01.PMCS) Notify (\_SB.PCI0.RP01, 0x02) } If (\_SB.PCI0.RP02.PSP2) { Store (0x01, \_SB.PCI0.RP02.PSP2) Store (0x01, \_SB.PCI0.RP02.PMCS) Notify (\_SB.PCI0.RP02, 0x02) } If (\_SB.PCI0.RP03.PSP3) { Store (0x01, \_SB.PCI0.RP03.PSP3) Store (0x01, \_SB.PCI0.RP03.PMCS) Notify (\_SB.PCI0.RP03, 0x02) } If (\_SB.PCI0.RP04.PSP4) { Store (0x01, \_SB.PCI0.RP04.PSP4) Store (0x01, \_SB.PCI0.RP04.PMCS) Notify (\_SB.PCI0.RP04, 0x02) } } Method (_L0B, 0, NotSerialized) { Notify (\_SB.PCI0.PCIB, 0x02) } Method (_L0C, 0, NotSerialized) { Notify (\_SB.PCI0.USB3, 0x02) } Method (_L0D, 0, NotSerialized) { Notify (\_SB.PCI0.USB7, 0x02) } Method (_L0E, 0, NotSerialized) { Notify (\_SB.PCI0.USB4, 0x02) } Method (_L1D, 0, NotSerialized) { } } Scope (\_SB) { Name (OSTB, Ones) OperationRegion (OSTY, SystemMemory, 0x3F690AF7, 0x00000001) Field (OSTY, AnyAcc, NoLock, Preserve) { TPOS, 8 } Method (OSTP, 0, NotSerialized) { If (LEqual (^OSTB, Ones)) { If (CondRefOf (\_OSI, Local0)) { If (\_OSI ("Windows 2001.1")) { Store (0x20, ^OSTB) Store (0x20, ^TPOS) } Else { If (\_OSI ("Windows 2001 SP1")) { Store (0x10, ^OSTB) Store (0x10, ^TPOS) } Else { If (\_OSI ("Windows 2001")) { Store (0x08, ^OSTB) Store (0x08, ^TPOS) } Else { Store (0x00, ^OSTB) Store (0x00, ^TPOS) } } } } Else { If (CondRefOf (\_OS, Local0)) { If (^SEQL (\_OS, "Microsoft Windows")) { Store (0x01, ^OSTB) Store (0x01, ^TPOS) } Else { If (^SEQL (\_OS, "Microsoft WindowsME: Millennium Edition")) { Store (0x02, ^OSTB) Store (0x02, ^TPOS) } Else { If (^SEQL (\_OS, "Microsoft Windows NT")) { Store (0x04, ^OSTB) Store (0x04, ^TPOS) } Else { Store (0x00, ^OSTB) Store (0x00, ^TPOS) } } } } Else { Store (0x00, ^OSTB) Store (0x00, ^TPOS) } } } Return (^OSTB) } Method (SEQL, 2, Serialized) { Store (SizeOf (Arg0), Local0) Store (SizeOf (Arg1), Local1) If (LNotEqual (Local0, Local1)) { Return (Zero) } Name (BUF0, Buffer (Local0) {}) Store (Arg0, BUF0) Name (BUF1, Buffer (Local0) {}) Store (Arg1, BUF1) Store (Zero, Local2) While (LLess (Local2, Local0)) { Store (DerefOf (Index (BUF0, Local2)), Local3) Store (DerefOf (Index (BUF1, Local2)), Local4) If (LNotEqual (Local3, Local4)) { Return (Zero) } Increment (Local2) } Return (One) } } Method (BTTM, 1, Serialized) { If (PWRS) { If (LGreaterEqual (Arg0, B0SC)) { Store (Arg0, B0SC) } } Else { If (LLessEqual (Arg0, B0SC)) { Store (Arg0, B0SC) } } } Method (GETB, 3, Serialized) { Multiply (Arg0, 0x08, Local0) Multiply (Arg1, 0x08, Local1) CreateField (Arg2, Local0, Local1, TBF3) Return (TBF3) } Method (P8XH, 2, Serialized) { If (LEqual (Arg0, 0x00)) { Store (Or (And (P80D, 0xFFFFFF00), Arg1), P80D) } If (LEqual (Arg0, 0x01)) { Store (Or (And (P80D, 0xFFFF00FF), ShiftLeft (Arg1, 0x08) ), P80D) } If (LEqual (Arg0, 0x02)) { Store (Or (And (P80D, 0xFF00FFFF), ShiftLeft (Arg1, 0x10) ), P80D) } If (LEqual (Arg0, 0x03)) { Store (Or (And (P80D, 0x00FFFFFF), ShiftLeft (Arg1, 0x18) ), P80D) } Store (P80D, P80H) } Method (PNOT, 0, Serialized) { If (MPEN) { If (And (PDC0, 0x08)) { Notify (\_PR.CPU0, 0x80) If (And (PDC0, 0x10)) { Sleep (0x64) Notify (\_PR.CPU0, 0x81) } } If (And (PDC1, 0x08)) { Notify (\_PR.CPU1, 0x80) If (And (PDC1, 0x10)) { Sleep (0x64) Notify (\_PR.CPU1, 0x81) } } } Else { Notify (\_PR.CPU0, 0x80) Sleep (0x64) Notify (\_PR.CPU0, 0x81) } } Method (TRAP, 1, Serialized) { Store (Arg0, SMIF) Store (0x00, TRP0) Return (SMIF) } Method (GETP, 1, Serialized) { If (LEqual (And (Arg0, 0x09), 0x00)) { Return (0xFFFFFFFF) } If (LEqual (And (Arg0, 0x09), 0x08)) { Return (0x0384) } ShiftRight (And (Arg0, 0x0300), 0x08, Local0) ShiftRight (And (Arg0, 0x3000), 0x0C, Local1) Return (Multiply (0x1E, Subtract (0x09, Add (Local0, Local1)) )) } Method (GDMA, 5, Serialized) { If (Arg0) { If (LAnd (Arg1, Arg4)) { Return (0x14) } If (LAnd (Arg2, Arg4)) { Return (Multiply (Subtract (0x04, Arg3), 0x0F)) } Return (Multiply (Subtract (0x04, Arg3), 0x1E)) } Return (0xFFFFFFFF) } Method (GETT, 1, Serialized) { Return (Multiply (0x1E, Subtract (0x09, Add (And (ShiftRight (Arg0, 0x02 ), 0x03), And (Arg0, 0x03))))) } Method (GETF, 3, Serialized) { Name (TMPF, 0x00) If (Arg0) { Or (TMPF, 0x01, TMPF) } If (And (Arg2, 0x02)) { Or (TMPF, 0x02, TMPF) } If (Arg1) { Or (TMPF, 0x04, TMPF) } If (And (Arg2, 0x20)) { Or (TMPF, 0x08, TMPF) } If (And (Arg2, 0x4000)) { Or (TMPF, 0x10, TMPF) } Return (TMPF) } Method (SETP, 3, Serialized) { If (LGreater (Arg0, 0xF0)) { Return (0x08) } Else { If (And (Arg1, 0x02)) { If (LAnd (LLessEqual (Arg0, 0x78), And (Arg2, 0x02))) { Return (0x2301) } If (LAnd (LLessEqual (Arg0, 0xB4), And (Arg2, 0x01))) { Return (0x2101) } } Return (0x1001) } } Method (SDMA, 1, Serialized) { If (LLessEqual (Arg0, 0x14)) { Return (0x01) } If (LLessEqual (Arg0, 0x1E)) { Return (0x02) } If (LLessEqual (Arg0, 0x2D)) { Return (0x01) } If (LLessEqual (Arg0, 0x3C)) { Return (0x02) } If (LLessEqual (Arg0, 0x5A)) { Return (0x01) } Return (0x00) } Method (SETT, 3, Serialized) { If (And (Arg1, 0x02)) { If (LAnd (LLessEqual (Arg0, 0x78), And (Arg2, 0x02))) { Return (0x0B) } If (LAnd (LLessEqual (Arg0, 0xB4), And (Arg2, 0x01))) { Return (0x09) } } Return (0x04) } Scope (\_TZ) { ThermalZone (ATF0) { Method (KELV, 1, NotSerialized) { Store (Arg0, Local0) Multiply (Local0, 0x0A, Local0) Add (Local0, 0x0AAB, Local0) Return (Local0) } Method (_TMP, 0, Serialized) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { Store (PHSD (0xD4, 0xC0), Local1) } Else { Store (\_SB.PCI0.LPCB.EC0.A1TP, Local1) } ShiftRight (Local1, 0x08, Local0) If (LGreater (Local0, 0x80)) { Sleep (0x32) If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { Store (PHSD (0xD4, 0xC0), Local1) } Else { Store (\_SB.PCI0.LPCB.EC0.A1TP, Local1) } ShiftRight (Local1, 0x08, Local0) } Return (KELV (Local0)) } Method (_PSV, 0, NotSerialized) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { Store (PHSD (0xD4, 0xC4), Local1) } Else { Store (\_SB.PCI0.LPCB.EC0.A1PT, Local1) } ShiftRight (Local1, 0x08, Local0) Return (KELV (Local0)) } Method (_PSL, 0, Serialized) { If (MPEN) { Return (Package (0x02) { \_PR.CPU0, \_PR.CPU1 }) } Return (Package (0x01) { \_PR.CPU0 }) } Method (_CRT, 0, Serialized) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { Store (PHSD (0xD4, 0xC6), Local1) } Else { Store (\_SB.PCI0.LPCB.EC0.A1CT, Local1) } ShiftRight (Local1, 0x08, Local0) Return (KELV (Local0)) } Name (_TC1, 0x01) Name (_TC2, 0x02) Name (_TSP, 0x32) } ThermalZone (DTS0) { Name (_PSV, 0x0E92) Name (_CRT, 0x0E9C) Method (_PSL, 0, Serialized) { If (MPEN) { Return (Package (0x02) { \_PR.CPU0, \_PR.CPU1 }) } Return (Package (0x01) { \_PR.CPU0 }) } Name (_TC1, 0x01) Name (_TC2, 0x02) Name (_TSP, 0x32) Method (_TMP, 0, NotSerialized) { Store (PHSB (0xA6, 0x00), Local0) Multiply (Local0, 0x0A, Local0) Add (Local0, 0x0AAB, Local0) Return (Local0) } } ThermalZone (DTS1) { Name (_PSV, 0x0E92) Name (_CRT, 0x0E9C) Method (_PSL, 0, Serialized) { If (MPEN) { Return (Package (0x02) { \_PR.CPU0, \_PR.CPU1 }) } Return (Package (0x01) { \_PR.CPU0 }) } Name (_TC1, 0x01) Name (_TC2, 0x02) Name (_TSP, 0x32) Method (_TMP, 0, NotSerialized) { If (MPEN) { Store (PHSB (0xA6, 0x01), Local0) } Else { Store (PHSB (0xA6, 0x00), Local0) } Multiply (Local0, 0x0A, Local0) Add (Local0, 0x0AAB, Local0) Return (Local0) } } } OperationRegion (SMI0, SystemMemory, 0x3F690AF8, 0x00000415) Field (SMI0, AnyAcc, NoLock, Preserve) { BCMD, 8, DID, 32, INFO, 4096 } Field (SMI0, AnyAcc, NoLock, Preserve) { Offset (0x05), INFB, 8 } Field (SMI0, AnyAcc, NoLock, Preserve) { Offset (0x05), INFD, 32 } Field (SMI0, AnyAcc, NoLock, Preserve) { Offset (0x05), SXBF, 8320 } Field (SMI0, AnyAcc, NoLock, Preserve) { Offset (0x05), INF1, 8, INF2, 8 } OperationRegion (SMI1, SystemIO, 0x0000FE00, 0x00000002) Field (SMI1, AnyAcc, NoLock, Preserve) { SMIC, 8 } Mutex (MPHS, 0x00) Method (PHS0, 1, NotSerialized) { Store (Arg0, BCMD) Store (Zero, SMIC) While (LEqual (BCMD, Arg0)) {} Store (0x00, BCMD) } Method (PHS, 1, Serialized) { Acquire (MPHS, 0xFFFF) Store (0x00, DID) PHS0 (Arg0) Store (INFD, Local0) Release (MPHS) Return (Local0) } Method (PHSD, 2, Serialized) { Acquire (MPHS, 0xFFFF) Store (0x00, DID) Store (Arg1, INFD) PHS0 (Arg0) Store (INFD, Local0) Release (MPHS) Return (Local0) } Method (PHSW, 3, Serialized) { Acquire (MPHS, 0xFFFF) Store (0x00, DID) Store (Arg1, INF1) Store (Arg2, INF2) PHS0 (Arg0) Store (INFB, Local0) Release (MPHS) Return (Local0) } Method (PHSB, 2, Serialized) { Acquire (MPHS, 0xFFFF) Store (0x00, DID) Store (Arg1, INFB) PHS0 (Arg0) Store (INFB, Local0) Release (MPHS) Return (Local0) } Method (PSCS, 1, Serialized) { Acquire (MPHS, 0xFFFF) Store (Arg0, DID) Store (Zero, INFO) PHS0 (0x00) Store (INFO, Local0) Release (MPHS) Return (Local0) } Method (PSSS, 2, Serialized) { Acquire (MPHS, 0xFFFF) Store (Arg0, DID) Store (Arg1, INFO) PHS0 (0x01) Release (MPHS) } Method (PSPS, 1, Serialized) { Acquire (MPHS, 0xFFFF) Store (Arg0, DID) Store (Zero, INFO) PHS0 (0x02) Store (INFO, Local0) Release (MPHS) Return (Local0) } Method (PSDI, 1, Serialized) { Acquire (MPHS, 0xFFFF) Store (Arg0, DID) PHS0 (0x03) Release (MPHS) } Method (PSST, 1, Serialized) { Acquire (MPHS, 0xFFFF) Store (Arg0, DID) PHS0 (0x04) Store (INFB, Local0) Release (MPHS) Return (Local0) } Scope (\_SB) { OperationRegion (TCG1, SystemMemory, 0x3F6909F0, 0x00000007) Field (TCG1, AnyAcc, NoLock, Preserve) { PPRQ, 8, PPLO, 8, PPRP, 8, PPOR, 8, TPRS, 8, TPMV, 8, MOR, 8 } Method (PHSR, 1, Serialized) { Store (Arg0, BCMD) Store (Zero, DID) Store (Zero, SMIC) If (LEqual (BCMD, Arg0)) {} Store (Zero, BCMD) Store (Zero, DID) Return (0x00) } OperationRegion (SMI0, SystemIO, 0x0000FE00, 0x00000002) Field (SMI0, AnyAcc, NoLock, Preserve) { SMIC, 8 } OperationRegion (SMI1, SystemMemory, 0x3F690AF8, 0x00000415) Field (SMI1, AnyAcc, NoLock, Preserve) { BCMD, 8, DID, 32, INFO, 1024 } Field (SMI1, AnyAcc, NoLock, Preserve) { AccessAs (ByteAcc, 0x00), Offset (0x05), INF, 8 } Method (_INI, 0, NotSerialized) { If (DTSE) { TRAP (0x47) } Store (0x07D0, OSYS) If (CondRefOf (\_OSI, Local0)) { If (\_OSI ("Linux")) { Store (0x01, LINX) } If (\_OSI ("Windows 2001")) { Store (0x07D1, OSYS) } If (\_OSI ("Windows 2001 SP1")) { Store (0x07D1, OSYS) } If (\_OSI ("Windows 2001 SP2")) { Store (0x07D2, OSYS) } If (\_OSI ("Windows 2006")) { Store (0x07D6, OSYS) } } If (LAnd (MPEN, LEqual (OSYS, 0x07D1))) { TRAP (0x3D) } TRAP (0x32) } Device (LID0) { Name (_HID, EisaId ("PNP0C0D")) Method (_LID, 0, NotSerialized) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { And (PHSB (0xD4, 0x82), 0x04, Local0) } Else { Store (\_SB.PCI0.LPCB.EC0.LIDS, Local0) } Return (Local0) } } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C")) Name (_PRW, Package (0x02) { 0x1D, 0x04 }) } Mutex (PLOK, 0x00) Method (NCPU, 0, NotSerialized) { Acquire (PLOK, 0xFFFF) Notify (\_PR.CPU0, 0x80) If (MPEN) { Notify (\_PR.CPU1, 0x80) } Sleep (0x64) Notify (\_PR.CPU0, 0x81) If (MPEN) { Notify (\_PR.CPU1, 0x81) } Release (PLOK) } Device (PCI0) { Method (_S3D, 0, NotSerialized) { Return (0x02) } Method (_S4D, 0, NotSerialized) { Return (0x02) } Name (_HID, EisaId ("PNP0A08")) Name (_CID, 0x030AD041) Name (_ADR, 0x00) Name (SUPP, 0x00) Name (CTRL, 0x00) Method (_OSC, 4, NotSerialized) { CreateDWordField (Arg3, 0x00, CDW1) CreateDWordField (Arg3, 0x04, CDW2) CreateDWordField (Arg3, 0x08, CDW3) If (LEqual (Arg0, Buffer (0x10) { /* 0000 */ 0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40, /* 0008 */ 0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66 })) { Store (CDW2, SUPP) Store (CDW3, CTRL) Store (0x00, CTRL) If (LNotEqual (Arg1, One)) { Or (CDW1, 0x08, CDW1) } If (LNotEqual (CDW3, CTRL)) { Or (CDW1, 0x10, CDW1) } Store (CTRL, CDW3) Return (Arg3) } Else { Or (CDW1, 0x04, CDW1) Return (Arg3) } } Name (_BBN, 0x00) OperationRegion (HBUS, PCI_Config, 0x40, 0xC0) Field (HBUS, DWordAcc, NoLock, Preserve) { Offset (0x50), , 4, PM0H, 2, Offset (0x51), PM1L, 2, , 2, PM1H, 2, Offset (0x52), PM2L, 2, , 2, PM2H, 2, Offset (0x53), PM3L, 2, , 2, PM3H, 2, Offset (0x54), PM4L, 2, , 2, PM4H, 2, Offset (0x55), PM5L, 2, , 2, PM5H, 2, Offset (0x56), PM6L, 2, , 2, PM6H, 2, Offset (0x57), , 7, HENA, 1, Offset (0x5C), , 3, TOUD, 5 } Name (BUF0, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, // Granularity 0x0000, // Range Minimum 0x00FF, // Range Maximum 0x0000, // Translation Offset 0x0100, // Length ,, ) DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x00000000, // Granularity 0x00000000, // Range Minimum 0x00000CF7, // Range Maximum 0x00000000, // Translation Offset 0x00000CF8, // Length ,, , TypeStatic) IO (Decode16, 0x0CF8, // Range Minimum 0x0CF8, // Range Maximum 0x01, // Alignment 0x08, // Length ) DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x00000000, // Granularity 0x00000D00, // Range Minimum 0x0000FFFF, // Range Maximum 0x00000000, // Translation Offset 0x0000F300, // Length ,, , TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000A0000, // Range Minimum 0x000BFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00020000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C0000, // Range Minimum 0x000C3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y00, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C4000, // Range Minimum 0x000C7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y01, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C8000, // Range Minimum 0x000CBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y02, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000CC000, // Range Minimum 0x000CFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y03, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D0000, // Range Minimum 0x000D3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y04, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D4000, // Range Minimum 0x000D7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y05, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D8000, // Range Minimum 0x000DBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y06, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000DC000, // Range Minimum 0x000DFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y07, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E0000, // Range Minimum 0x000E3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y08, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E4000, // Range Minimum 0x000E7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y09, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E8000, // Range Minimum 0x000EBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y0A, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000EC000, // Range Minimum 0x000EFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, _Y0B, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000F0000, // Range Minimum 0x000FFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00010000, // Length ,, _Y0C, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x00000000, // Range Minimum 0xFEBFFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00000000, // Length ,, _Y0E, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0xFED40000, // Range Minimum 0xFED44FFF, // Range Maximum 0x00000000, // Translation Offset 0x00000000, // Length ,, _Y0D, AddressRangeMemory, TypeStatic) }) Method (_CRS, 0, Serialized) { If (PM1L) { CreateDWordField (BUF0, \_SB.PCI0._Y00._LEN, C0LN) Store (Zero, C0LN) } If (LEqual (PM1L, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y00._RW, C0RW) Store (Zero, C0RW) } If (PM1H) { CreateDWordField (BUF0, \_SB.PCI0._Y01._LEN, C4LN) Store (Zero, C4LN) } If (LEqual (PM1H, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y01._RW, C4RW) Store (Zero, C4RW) } If (PM2L) { CreateDWordField (BUF0, \_SB.PCI0._Y02._LEN, C8LN) Store (Zero, C8LN) } If (LEqual (PM2L, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y02._RW, C8RW) Store (Zero, C8RW) } If (PM2H) { CreateDWordField (BUF0, \_SB.PCI0._Y03._LEN, CCLN) Store (Zero, CCLN) } If (LEqual (PM2H, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y03._RW, CCRW) Store (Zero, CCRW) } If (PM3L) { CreateDWordField (BUF0, \_SB.PCI0._Y04._LEN, D0LN) Store (Zero, D0LN) } If (LEqual (PM3L, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y04._RW, D0RW) Store (Zero, D0RW) } If (PM3H) { CreateDWordField (BUF0, \_SB.PCI0._Y05._LEN, D4LN) Store (Zero, D4LN) } If (LEqual (PM3H, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y05._RW, D4RW) Store (Zero, D4RW) } If (PM4L) { CreateDWordField (BUF0, \_SB.PCI0._Y06._LEN, D8LN) Store (Zero, D8LN) } If (LEqual (PM4L, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y06._RW, D8RW) Store (Zero, D8RW) } If (PM4H) { CreateDWordField (BUF0, \_SB.PCI0._Y07._LEN, DCLN) Store (Zero, DCLN) } If (LEqual (PM4H, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y07._RW, DCRW) Store (Zero, DCRW) } If (PM5L) { CreateDWordField (BUF0, \_SB.PCI0._Y08._LEN, E0LN) Store (Zero, E0LN) } If (LEqual (PM5L, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y08._RW, E0RW) Store (Zero, E0RW) } If (PM5H) { CreateDWordField (BUF0, \_SB.PCI0._Y09._LEN, E4LN) Store (Zero, E4LN) } If (LEqual (PM5H, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y09._RW, E4RW) Store (Zero, E4RW) } If (PM6L) { CreateDWordField (BUF0, \_SB.PCI0._Y0A._LEN, E8LN) Store (Zero, E8LN) } If (LEqual (PM6L, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y0A._RW, E8RW) Store (Zero, E8RW) } If (PM6H) { CreateDWordField (BUF0, \_SB.PCI0._Y0B._LEN, ECLN) Store (Zero, ECLN) } If (LEqual (PM6H, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y0B._RW, ECRW) Store (Zero, ECRW) } If (PM0H) { CreateDWordField (BUF0, \_SB.PCI0._Y0C._LEN, F0LN) Store (Zero, F0LN) } If (LEqual (PM0H, 0x01)) { CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, F0RW) Store (Zero, F0RW) } If (TPMP) { CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, TPML) Store (0x5000, TPML) } CreateDWordField (BUF0, \_SB.PCI0._Y0E._MIN, M1MN) CreateDWordField (BUF0, \_SB.PCI0._Y0E._MAX, M1MX) CreateDWordField (BUF0, \_SB.PCI0._Y0E._LEN, M1LN) ShiftLeft (TOUD, 0x1B, M1MN) Add (Subtract (M1MX, M1MN), 0x01, M1LN) Return (BUF0) } Method (_PRT, 0, NotSerialized) { If (GPIC) { Return (Package (0x0F) { Package (0x04) { 0x0001FFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x0002FFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x0002FFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0x001BFFFF, 0x00, 0x00, 0x13 }, Package (0x04) { 0x001CFFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x001CFFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0x001CFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0x001CFFFF, 0x03, 0x00, 0x13 }, Package (0x04) { 0x001DFFFF, 0x00, 0x00, 0x11 }, Package (0x04) { 0x001DFFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0x001DFFFF, 0x02, 0x00, 0x15 }, Package (0x04) { 0x001DFFFF, 0x03, 0x00, 0x17 }, Package (0x04) { 0x001EFFFF, 0x00, 0x00, 0x16 }, Package (0x04) { 0x001EFFFF, 0x01, 0x00, 0x14 }, Package (0x04) { 0x001FFFFF, 0x01, 0x00, 0x16 } }) } Else { Return (Package (0x0F) { Package (0x04) { 0x0001FFFF, 0x00, \_SB.PCI0.LPCB.LNKA, 0x00 }, Package (0x04) { 0x0002FFFF, 0x00, \_SB.PCI0.LPCB.LNKA, 0x00 }, Package (0x04) { 0x0002FFFF, 0x01, \_SB.PCI0.LPCB.LNKB, 0x00 }, Package (0x04) { 0x001BFFFF, 0x00, \_SB.PCI0.LPCB.LNKD, 0x00 }, Package (0x04) { 0x001CFFFF, 0x00, \_SB.PCI0.LPCB.LNKA, 0x00 }, Package (0x04) { 0x001CFFFF, 0x01, \_SB.PCI0.LPCB.LNKB, 0x00 }, Package (0x04) { 0x001CFFFF, 0x02, \_SB.PCI0.LPCB.LNKC, 0x00 }, Package (0x04) { 0x001CFFFF, 0x03, \_SB.PCI0.LPCB.LNKD, 0x00 }, Package (0x04) { 0x001DFFFF, 0x00, \_SB.PCI0.LPCB.LNKB, 0x00 }, Package (0x04) { 0x001DFFFF, 0x01, \_SB.PCI0.LPCB.LNKD, 0x00 }, Package (0x04) { 0x001DFFFF, 0x02, \_SB.PCI0.LPCB.LNKF, 0x00 }, Package (0x04) { 0x001DFFFF, 0x03, \_SB.PCI0.LPCB.LNKH, 0x00 }, Package (0x04) { 0x001EFFFF, 0x00, \_SB.PCI0.LPCB.LNKG, 0x00 }, Package (0x04) { 0x001EFFFF, 0x01, \_SB.PCI0.LPCB.LNKE, 0x00 }, Package (0x04) { 0x001FFFFF, 0x01, \_SB.PCI0.LPCB.LNKG, 0x00 } }) } } Device (PDRC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x01) Name (BUF0, ResourceTemplate () { Memory32Fixed (ReadWrite, 0xE0000000, // Address Base 0x10000000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED14000, // Address Base 0x00004000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED18000, // Address Base 0x00001000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED19000, // Address Base 0x00001000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED1C000, // Address Base 0x00004000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED20000, // Address Base 0x00020000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED40000, // Address Base 0x00005000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED45000, // Address Base 0x0004B000, // Address Length ) }) Name (BUF1, ResourceTemplate () { Memory32Fixed (ReadWrite, 0xE0000000, // Address Base 0x10000000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED14000, // Address Base 0x00004000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED18000, // Address Base 0x00001000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED19000, // Address Base 0x00001000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED1C000, // Address Base 0x00004000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED20000, // Address Base 0x00020000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED45000, // Address Base 0x0004B000, // Address Length ) }) Method (_CRS, 0, Serialized) { If (LNot (TPMP)) { Return (BUF0) } Return (BUF1) } } Device (PEGP) { Name (_ADR, 0x00010000) Method (_PRT, 0, NotSerialized) { If (GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x13 } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, \_SB.PCI0.LPCB.LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x01, \_SB.PCI0.LPCB.LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x02, \_SB.PCI0.LPCB.LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x03, \_SB.PCI0.LPCB.LNKD, 0x00 } }) } } } Device (GFX0) { Name (_ADR, 0x00020000) Method (_DOS, 1, NotSerialized) { } Method (_DOD, 0, NotSerialized) { If (LEqual (NDID, 0x01)) { Name (TMP1, Package (0x01) { 0xFFFFFFFF }) Store (Or (0x00010000, DID1), Index (TMP1, 0x00)) Return (TMP1) } If (LEqual (NDID, 0x02)) { Name (TMP2, Package (0x02) { 0xFFFFFFFF, 0xFFFFFFFF }) Store (Or (0x00010000, DID1), Index (TMP2, 0x00)) Store (Or (0x00010000, DID2), Index (TMP2, 0x01)) Return (TMP2) } If (LEqual (NDID, 0x03)) { Name (TMP3, Package (0x03) { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }) Store (Or (0x00010000, DID1), Index (TMP3, 0x00)) Store (Or (0x00010000, DID2), Index (TMP3, 0x01)) Store (Or (0x00010000, DID3), Index (TMP3, 0x02)) Return (TMP3) } If (LEqual (NDID, 0x04)) { Name (TMP4, Package (0x04) { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }) Store (Or (0x00010000, DID1), Index (TMP4, 0x00)) Store (Or (0x00010000, DID2), Index (TMP4, 0x01)) Store (Or (0x00010000, DID3), Index (TMP4, 0x02)) Store (Or (0x00010000, DID4), Index (TMP4, 0x03)) Return (TMP4) } Name (TMP5, Package (0x05) { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }) Store (Or (0x00010000, DID1), Index (TMP5, 0x00)) Store (Or (0x00010000, DID2), Index (TMP5, 0x01)) Store (Or (0x00010000, DID3), Index (TMP5, 0x02)) Store (Or (0x00010000, DID4), Index (TMP5, 0x03)) Store (Or (0x00010000, DID5), Index (TMP5, 0x04)) Return (TMP5) } Device (LCD) { Method (_ADR, 0, Serialized) { Return (And (0xFFFF, DID2)) } Name (BRIT, Package (0x09) { 0x04, 0x10, 0x1C, 0x28, 0x34, 0x40, 0x4C, 0x58, 0x64 }) Method (_BCL, 0, NotSerialized) { Name (RETB, Package (0x0B) {}) Store (DerefOf (Index (BRIT, 0x08)), Index (RETB, 0x00)) Store (DerefOf (Index (BRIT, 0x08)), Index (RETB, 0x01)) Store (Zero, Local0) While (LLess (Local0, SizeOf (BRIT))) { Store (DerefOf (Index (BRIT, Local0)), Index (RETB, Add (Local0, 0x02))) Increment (Local0) } Return (RETB) } Method (_BCM, 1, NotSerialized) { Store (Match (BRIT, MEQ, Arg0, MTR, 0x00, 0x00), Local0) If (LEqual (Local0, Ones)) { Return (Zero) } PHSB (0xC3, Local0) PHSB (0xC2, Local0) Return (Zero) } Method (_BQC, 0, NotSerialized) { Store (PHSB (0xC1, 0x00), Local0) Return (DerefOf (Index (BRIT, Local0))) } } } Device (HDEF) { Name (_ADR, 0x001B0000) } Device (RP01) { Name (_ADR, 0x001C0000) OperationRegion (P1CS, PCI_Config, 0x40, 0x0100) Field (P1CS, AnyAcc, NoLock, WriteAsZeros) { Offset (0x1A), ABP1, 1, , 2, PDC1, 1, , 2, PDS1, 1, Offset (0x20), Offset (0x22), PSP1, 1, Offset (0x9C), , 30, HPCS, 1, PMCS, 1 } Field (P1CS, AnyAcc, NoLock, Preserve) { Offset (0x10), , 5, RTRN, 1, LCTR, 1, Offset (0x12), , 11, LTRN, 1, SLCC, 1 } Device (MLAN) { Name (_ADR, 0x00) Name (_PRW, Package (0x02) { 0x09, 0x03 }) OperationRegion (ETHR, PCI_Config, 0x00, 0x0100) Field (ETHR, ByteAcc, NoLock, Preserve) { Offset (0xF0), ASPM, 2, , 4, LCTR, 1, Offset (0xF2), , 12, SLCC, 1 } Name (_PSC, 0x00) Method (_PS0, 0, NotSerialized) { Sleep (0x64) If (LEqual (\_SB.PCI0.RP01.MLAN.ASPM, 0x00)) { If (LAnd (\_SB.PCI0.RP01.SLCC, \_SB.PCI0.RP01.MLAN.SLCC)) { Store (0x01, \_SB.PCI0.RP01.LCTR) Store (0x01, \_SB.PCI0.RP01.MLAN.LCTR) Store (0x01, \_SB.PCI0.RP01.RTRN) While (\_SB.PCI0.RP01.LTRN) { Sleep (0x0A) } Store (\ASPM, \_SB.PCI0.RP01.MLAN.ASPM) } } Store (0x00, _PSC) } Method (_PS3, 0, NotSerialized) { Store (\_SB.PCI0.RP01.MLAN.ASPM, \ASPM) Store (0x03, _PSC) } } Method (_PRT, 0, NotSerialized) { If (\GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x13 } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, \_SB.PCI0.LPCB.LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x01, \_SB.PCI0.LPCB.LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x02, \_SB.PCI0.LPCB.LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x03, \_SB.PCI0.LPCB.LNKD, 0x00 } }) } } } Device (RP02) { Name (_ADR, 0x001C0001) OperationRegion (P2CS, PCI_Config, 0x40, 0x0100) Field (P2CS, AnyAcc, NoLock, WriteAsZeros) { Offset (0x1A), ABP2, 1, , 2, PDC2, 1, , 2, PDS2, 1, Offset (0x20), Offset (0x22), PSP2, 1, Offset (0x9C), , 30, HPCS, 1, PMCS, 1 } Device (WLAN) { Name (_ADR, 0x00) Name (_PRW, Package (0x02) { 0x09, 0x03 }) Name (_PSC, 0x00) Method (_PS0, 0, NotSerialized) { Store (0x00, _PSC) } Method (_PS3, 0, NotSerialized) { Store (0x03, _PSC) } Method (_STA, 0, NotSerialized) { Return (0x0F) } } Method (_PRT, 0, NotSerialized) { If (\GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x11 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x12 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x13 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x10 } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, \_SB.PCI0.LPCB.LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x01, \_SB.PCI0.LPCB.LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x02, \_SB.PCI0.LPCB.LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x03, \_SB.PCI0.LPCB.LNKA, 0x00 } }) } } } Device (RP03) { Name (_ADR, 0x001C0002) OperationRegion (P3CS, PCI_Config, 0x40, 0x0100) Field (P3CS, AnyAcc, NoLock, WriteAsZeros) { Offset (0x1A), ABP3, 1, , 2, PDC3, 1, , 2, PDS3, 1, Offset (0x20), Offset (0x22), PSP3, 1, Offset (0x9C), , 30, HPCS, 1, PMCS, 1 } Method (_PRT, 0, NotSerialized) { If (\GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x12 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x10 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x11 } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, \_SB.PCI0.LPCB.LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x01, \_SB.PCI0.LPCB.LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x02, \_SB.PCI0.LPCB.LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x03, \_SB.PCI0.LPCB.LNKB, 0x00 } }) } } Device (S3F0) { Name (_ADR, 0x00) Name (_SUN, 0x03) Name (_PRW, Package (0x02) { 0x09, 0x04 }) Method (_RMV, 0, NotSerialized) { Return (0x01) } } Device (S3F1) { Name (_ADR, 0x01) Name (_SUN, 0x03) Name (_PRW, Package (0x02) { 0x09, 0x04 }) Method (_RMV, 0, NotSerialized) { Return (0x01) } } Device (S3F2) { Name (_ADR, 0x02) Name (_SUN, 0x03) Name (_PRW, Package (0x02) { 0x09, 0x04 }) Method (_RMV, 0, NotSerialized) { Return (0x01) } } Device (S3F3) { Name (_ADR, 0x03) Name (_SUN, 0x03) Name (_PRW, Package (0x02) { 0x09, 0x04 }) Method (_RMV, 0, NotSerialized) { Return (0x01) } } Device (S3F4) { Name (_ADR, 0x04) Name (_SUN, 0x03) Name (_PRW, Package (0x02) { 0x09, 0x04 }) Method (_RMV, 0, NotSerialized) { Return (0x01) } } Device (S3F5) { Name (_ADR, 0x05) Name (_SUN, 0x03) Name (_PRW, Package (0x02) { 0x09, 0x04 }) Method (_RMV, 0, NotSerialized) { Return (0x01) } } Device (S3F6) { Name (_ADR, 0x06) Name (_SUN, 0x03) Name (_PRW, Package (0x02) { 0x09, 0x04 }) Method (_RMV, 0, NotSerialized) { Return (0x01) } } Device (S3F7) { Name (_ADR, 0x07) Name (_SUN, 0x03) Name (_PRW, Package (0x02) { 0x09, 0x04 }) Method (_RMV, 0, NotSerialized) { Return (0x01) } } Name (_HPP, Package (0x04) { 0x10, 0x00, 0x00, 0x00 }) } Device (RP04) { Name (_ADR, 0x001C0003) OperationRegion (P4CS, PCI_Config, 0x40, 0x0100) Field (P4CS, AnyAcc, NoLock, WriteAsZeros) { Offset (0x1A), ABP4, 1, , 2, PDC4, 1, , 2, PDS4, 1, Offset (0x20), Offset (0x22), PSP4, 1, Offset (0x9C), , 30, HPCS, 1, PMCS, 1 } Method (_PRT, 0, NotSerialized) { If (\GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x13 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x10 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x11 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x12 } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, \_SB.PCI0.LPCB.LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x01, \_SB.PCI0.LPCB.LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x02, \_SB.PCI0.LPCB.LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x03, \_SB.PCI0.LPCB.LNKC, 0x00 } }) } } Device (DLAN) { Name (_ADR, 0x00) Name (_SUN, 0x04) Name (_PRW, Package (0x02) { 0x09, 0x03 }) Name (_EJD, "\\_SB.DOCK") } Device (S4F1) { Name (_ADR, 0x01) Name (_SUN, 0x04) } Device (S4F2) { Name (_ADR, 0x02) Name (_SUN, 0x04) } Device (S4F3) { Name (_ADR, 0x03) Name (_SUN, 0x04) } Device (S4F4) { Name (_ADR, 0x04) Name (_SUN, 0x04) } Device (S4F5) { Name (_ADR, 0x05) Name (_SUN, 0x04) } Device (S4F6) { Name (_ADR, 0x06) Name (_SUN, 0x04) } Device (S4F7) { Name (_ADR, 0x07) Name (_SUN, 0x04) } } Device (USB1) { Name (_ADR, 0x001D0000) OperationRegion (U1CS, PCI_Config, 0xC4, 0x04) Field (U1CS, DWordAcc, NoLock, Preserve) { U1EN, 2 } Name (_PRW, Package (0x02) { 0x03, 0x03 }) Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, U1EN) } Else { Store (0x00, U1EN) } } Method (_S3D, 0, NotSerialized) { Return (0x02) } Method (_S4D, 0, NotSerialized) { Return (0x02) } } Device (USB2) { Name (_ADR, 0x001D0001) OperationRegion (U2CS, PCI_Config, 0xC4, 0x04) Field (U2CS, DWordAcc, NoLock, Preserve) { U2EN, 2 } Name (_PRW, Package (0x02) { 0x04, 0x03 }) Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, U2EN) } Else { Store (0x00, U2EN) } } Method (_S3D, 0, NotSerialized) { Return (0x02) } Method (_S4D, 0, NotSerialized) { Return (0x02) } } Device (USB3) { Name (_ADR, 0x001D0002) OperationRegion (U2CS, PCI_Config, 0xC4, 0x04) Field (U2CS, DWordAcc, NoLock, Preserve) { U3EN, 2 } Name (_PRW, Package (0x02) { 0x0C, 0x03 }) Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, U3EN) } Else { Store (0x00, U3EN) } } Method (_S3D, 0, NotSerialized) { Return (0x02) } Method (_S4D, 0, NotSerialized) { Return (0x02) } } Device (USB4) { Name (_ADR, 0x001D0003) OperationRegion (U4CS, PCI_Config, 0xC4, 0x04) Field (U4CS, DWordAcc, NoLock, Preserve) { U4EN, 2 } Name (_PRW, Package (0x02) { 0x0E, 0x03 }) Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, U4EN) } Else { Store (0x00, U4EN) } } Method (_S3D, 0, NotSerialized) { Return (0x02) } Method (_S4D, 0, NotSerialized) { Return (0x02) } } Device (USB7) { Name (_ADR, 0x001D0007) Device (HUB7) { Name (_ADR, 0x00) Device (PRT1) { Name (_ADR, 0x01) } Device (PRT2) { Name (_ADR, 0x02) } Device (PRT3) { Name (_ADR, 0x03) } Device (PRT4) { Name (_ADR, 0x04) } Device (PRT5) { Name (_ADR, 0x05) } Device (PRT6) { Name (_ADR, 0x06) } Device (PRT7) { Name (_ADR, 0x07) } Device (PRT8) { Name (_ADR, 0x08) } } Name (_PRW, Package (0x02) { 0x0D, 0x03 }) Method (_S3D, 0, NotSerialized) { Return (0x02) } Method (_S4D, 0, NotSerialized) { Return (0x02) } } Device (PCIB) { Name (_ADR, 0x001E0000) Device (SLT0) { Name (_ADR, 0x00) Name (_PRW, Package (0x02) { 0x0B, 0x04 }) } Device (CRD0) { Name (_ADR, 0x00040000) OperationRegion (CCRD, PCI_Config, 0x00, 0xE4) Field (CCRD, DWordAcc, NoLock, Preserve) { Offset (0x44), CD44, 32 } Method (_INI, 0, NotSerialized) { Store (Zero, CD44) } Method (_STA, 0, NotSerialized) { Return (0x09) } } Method (_PRT, 0, NotSerialized) { If (GPIC) { Return (Package (0x0A) { Package (0x04) { 0x0004FFFF, 0x00, 0x00, 0x14 }, Package (0x04) { 0x0004FFFF, 0x01, 0x00, 0x15 }, Package (0x04) { 0x0004FFFF, 0x02, 0x00, 0x16 }, Package (0x04) { 0x0004FFFF, 0x03, 0x00, 0x17 }, Package (0x04) { 0x0005FFFF, 0x00, 0x00, 0x12 }, Package (0x04) { 0x0005FFFF, 0x02, 0x00, 0x14 }, Package (0x04) { 0x0005FFFF, 0x03, 0x00, 0x17 }, Package (0x04) { 0x0008FFFF, 0x00, 0x00, 0x14 }, Package (0x04) { 0x000BFFFF, 0x00, 0x00, 0x11 }, Package (0x04) { 0x000BFFFF, 0x01, 0x00, 0x12 } }) } Else { Return (Package (0x0A) { Package (0x04) { 0x0004FFFF, 0x00, \_SB.PCI0.LPCB.LNKE, 0x00 }, Package (0x04) { 0x0004FFFF, 0x01, \_SB.PCI0.LPCB.LNKF, 0x00 }, Package (0x04) { 0x0004FFFF, 0x02, \_SB.PCI0.LPCB.LNKG, 0x00 }, Package (0x04) { 0x0004FFFF, 0x03, \_SB.PCI0.LPCB.LNKH, 0x00 }, Package (0x04) { 0x0005FFFF, 0x00, \_SB.PCI0.LPCB.LNKC, 0x00 }, Package (0x04) { 0x0005FFFF, 0x02, \_SB.PCI0.LPCB.LNKE, 0x00 }, Package (0x04) { 0x0005FFFF, 0x03, \_SB.PCI0.LPCB.LNKH, 0x00 }, Package (0x04) { 0x0008FFFF, 0x00, \_SB.PCI0.LPCB.LNKE, 0x00 }, Package (0x04) { 0x000BFFFF, 0x00, \_SB.PCI0.LPCB.LNKB, 0x00 }, Package (0x04) { 0x000BFFFF, 0x01, \_SB.PCI0.LPCB.LNKC, 0x00 } }) } } } Device (AUD0) { Name (_ADR, 0x001E0002) } Device (MODM) { Name (_ADR, 0x001E0003) } Device (LPCB) { Name (_ADR, 0x001F0000) OperationRegion (LPC0, PCI_Config, 0x40, 0xC0) Field (LPC0, AnyAcc, NoLock, Preserve) { Offset (0x20), PARC, 8, PBRC, 8, PCRC, 8, PDRC, 8, Offset (0x28), PERC, 8, PFRC, 8, PGRC, 8, PHRC, 8, Offset (0x40), IOD0, 8, IOD1, 8, IOD2, 8, Offset (0x44), Offset (0x46), Offset (0x48), GID2, 32, GID3, 32, GID4, 32 } Device (LNKA) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x01) Method (_DIS, 0, Serialized) { Store (0x80, PARC) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {10} }) Method (_CRS, 0, Serialized) { Name (RTLA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y0F) {} }) CreateWordField (RTLA, \_SB.PCI0.LPCB.LNKA._CRS._Y0F._INT, IRQ0) Store (Zero, IRQ0) ShiftLeft (0x01, And (PARC, 0x0F), IRQ0) Return (RTLA) } Method (_SRS, 1, Serialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PARC) } Method (_STA, 0, Serialized) { If (And (PARC, 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x02) Method (_DIS, 0, Serialized) { Store (0x80, PBRC) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {10} }) Method (_CRS, 0, Serialized) { Name (RTLB, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y10) {} }) CreateWordField (RTLB, \_SB.PCI0.LPCB.LNKB._CRS._Y10._INT, IRQ0) Store (Zero, IRQ0) ShiftLeft (0x01, And (PBRC, 0x0F), IRQ0) Return (RTLB) } Method (_SRS, 1, Serialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PBRC) } Method (_STA, 0, Serialized) { If (And (PBRC, 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x03) Method (_DIS, 0, Serialized) { Store (0x80, PCRC) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {10} }) Method (_CRS, 0, Serialized) { Name (RTLC, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y11) {} }) CreateWordField (RTLC, \_SB.PCI0.LPCB.LNKC._CRS._Y11._INT, IRQ0) Store (Zero, IRQ0) ShiftLeft (0x01, And (PCRC, 0x0F), IRQ0) Return (RTLC) } Method (_SRS, 1, Serialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PCRC) } Method (_STA, 0, Serialized) { If (And (PCRC, 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x04) Method (_DIS, 0, Serialized) { Store (0x80, PDRC) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {10} }) Method (_CRS, 0, Serialized) { Name (RTLD, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y12) {} }) CreateWordField (RTLD, \_SB.PCI0.LPCB.LNKD._CRS._Y12._INT, IRQ0) Store (Zero, IRQ0) ShiftLeft (0x01, And (PDRC, 0x0F), IRQ0) Return (RTLD) } Method (_SRS, 1, Serialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PDRC) } Method (_STA, 0, Serialized) { If (And (PDRC, 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKE) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x05) Method (_DIS, 0, Serialized) { Store (0x80, PERC) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {10} }) Method (_CRS, 0, Serialized) { Name (RTLE, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y13) {} }) CreateWordField (RTLE, \_SB.PCI0.LPCB.LNKE._CRS._Y13._INT, IRQ0) Store (Zero, IRQ0) ShiftLeft (0x01, And (PERC, 0x0F), IRQ0) Return (RTLE) } Method (_SRS, 1, Serialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PERC) } Method (_STA, 0, Serialized) { If (And (PERC, 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKF) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x06) Method (_DIS, 0, Serialized) { Store (0x80, PFRC) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {10} }) Method (_CRS, 0, Serialized) { Name (RTLF, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y14) {} }) CreateWordField (RTLF, \_SB.PCI0.LPCB.LNKF._CRS._Y14._INT, IRQ0) Store (Zero, IRQ0) ShiftLeft (0x01, And (PFRC, 0x0F), IRQ0) Return (RTLF) } Method (_SRS, 1, Serialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PFRC) } Method (_STA, 0, Serialized) { If (And (PFRC, 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x07) Method (_DIS, 0, Serialized) { Store (0x80, PGRC) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {10} }) Method (_CRS, 0, Serialized) { Name (RTLG, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y15) {} }) CreateWordField (RTLG, \_SB.PCI0.LPCB.LNKG._CRS._Y15._INT, IRQ0) Store (Zero, IRQ0) ShiftLeft (0x01, And (PGRC, 0x0F), IRQ0) Return (RTLG) } Method (_SRS, 1, Serialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PGRC) } Method (_STA, 0, Serialized) { If (And (PGRC, 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x08) Method (_DIS, 0, Serialized) { Store (0x80, PHRC) } Name (_PRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {10} }) Method (_CRS, 0, Serialized) { Name (RTLH, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y16) {} }) CreateWordField (RTLH, \_SB.PCI0.LPCB.LNKH._CRS._Y16._INT, IRQ0) Store (Zero, IRQ0) ShiftLeft (0x01, And (PHRC, 0x0F), IRQ0) Return (RTLH) } Method (_SRS, 1, Serialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PHRC) } Method (_STA, 0, Serialized) { If (And (PHRC, 0x80)) { Return (0x09) } Else { Return (0x0B) } } } Device (EC0) { Name (_HID, EisaId ("PNP0C09")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0062, // Range Minimum 0x0062, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0066, // Range Minimum 0x0066, // Range Maximum 0x01, // Alignment 0x01, // Length ) }) Name (_GPE, 0x17) Name (ECOK, 0x00) Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x03)) { Store (Arg1, ECOK) } } Name (_PRW, Package (0x02) { 0x1D, 0x05 }) OperationRegion (ECR, EmbeddedControl, 0x00, 0xFF) Field (ECR, ByteAcc, Lock, Preserve) { Offset (0x80), MPBP, 1, MPBD, 1, DOKD, 1, DFBP, 1, Offset (0x81), BT1A, 1, BT2A, 1, ACAT, 1, Offset (0x82), PWRB, 1, JOGB, 1, LIDS, 1, Offset (0x83), BT1P, 1, BT2P, 1, Offset (0x84), B1ST, 8, B2ST, 8, Offset (0x87), Offset (0x88), WUP0, 8, DKID, 8, Offset (0x90), MASK, 8, BT1S, 1, BT2S, 1, Offset (0x92), BT1W, 1, BT2W, 1, Offset (0x93), FAN0, 8, CB0S, 1, CB1S, 1, Offset (0x95), PHYO, 1, Offset (0x96), BRIT, 8, CONT, 8, SNDU, 1, SNDD, 1, Offset (0x99), SMDM, 1, Offset (0x9A), Offset (0x9B), SIRQ, 8, SLOB, 8, SHIB, 8, MPWR, 1, WAKI, 1, ERST, 1, EOFF, 1, IRST, 1, OPOW, 1, IUSE, 1, LIDE, 1, Offset (0xA0), B1RC, 16, B1AB, 16, B1AC, 16, B1VO, 16, B2RC, 16, B2AB, 16, B2AC, 16, B2VO, 16, B1DC, 16, B1LF, 16, B1DV, 16, B1DL, 16, B2DC, 16, B2LF, 16, B2DV, 16, B2DL, 16, A1TP, 16, A1AT, 16, A1PT, 16, A1CT, 16, A2TP, 16, A2AT, 16, A2PT, 16, A2CT, 16, Offset (0xF4), , 5, OPTP, 1 } Name (UDRQ, 0x00) Name (DCKB, 0x00) Name (WUP1, 0x00) Name (BT1B, 0x00) Name (BT2B, 0x00) Name (ACAB, 0x00) Method (_Q50, 0, NotSerialized) { Notify (ACAD, 0x80) \_SB.NCPU () } Method (_Q51, 0, NotSerialized) { If (BT1A) { Notify (BAT1, 0x00) } Else { Notify (BAT1, 0x01) } Notify (BAT1, 0x80) } Method (_Q53, 0, NotSerialized) { } Method (_Q58, 0, NotSerialized) { Notify (\_TZ.ATF0, 0x81) } Method (_Q5F, 0, NotSerialized) { Notify (\_TZ.ATF0, 0x80) } Method (_Q60, 0, NotSerialized) { Notify (\_SB.PWRB, 0x80) } Method (_Q66, 0, NotSerialized) { Notify (\_SB.LID0, 0x80) } Method (_Q69, 0, NotSerialized) { Notify (\_SB.PCI0.GFX0, 0x81) } Method (_Q5A, 0, NotSerialized) { Notify (\_SB.DOCK, 0x00) } Method (_Q5B, 0, NotSerialized) { If (LNot (UDRQ)) { Store (0x00, IUSE) Notify (\_SB.DOCK, 0x00) Notify (\_SB.PCI0.RP04, 0x00) Notify (\_SB.PCI0, 0x01) } Else { Store (0x00, UDRQ) Signal (\_SB.DOCK.UDCK) } } Method (_Q5C, 0, NotSerialized) { If (DOKD) { Notify (\_SB.DOCK, 0x03) } } Device (BAT1) { Name (_HID, EisaId ("PNP0C0A")) Name (_UID, 0x01) Name (_PCL, Package (0x01) { \_SB }) Name (BATI, Package (0x0D) { 0x00, 0x9650, 0x9650, 0x00, 0x39D0, 0x00, 0x78, 0x00, 0x0A, "", "", "LION", "Sony Corp." }) Name (BATS, Package (0x04) { 0x02, 0xFFFFFFFF, 0x0D7A, 0x3840 }) Method (_STA, 0, NotSerialized) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { And (PHSD (0xD4, 0x80), 0x0100, Local1) } Else { Store (BT1A, Local1) } If (Local1) { Store (0x1F, Local0) } Else { Store (0x0F, Local0) } Return (Local0) } Method (_BIF, 0, NotSerialized) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { Store (PHSD (0xD4, 0xB0), Local0) Store (PHSD (0xD4, 0xB2), Local1) Store (PHSD (0xD4, 0xB6), Local2) } Else { Store (B1DC, Local0) Store (B1LF, Local1) Store (B1DV, Local2) } Multiply (Local0, 0x0A, Index (BATI, 0x01)) Multiply (Local1, 0x0A, Index (BATI, 0x02)) Store (Local2, Index (BATI, 0x04)) Return (BATI) } Method (_BST, 0, NotSerialized) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { Store (And (PHSD (0xD4, 0x84), 0xFF, Local0), Index (BATS, 0x00 )) Store (PHSD (0xD4, 0xA6), Local0) Store (PHSD (0xD4, 0xA4), Local1) Store (PHSD (0xD4, 0xA2), Local2) } Else { Store (B1ST, Index (BATS, 0x00)) Store (B1VO, Local0) Store (B1AC, Local1) Store (B1AB, Local2) } If (LEqual (Local1, 0xFFFF)) { Store (0xFFFFFFFF, Local1) } Else { If (LGreaterEqual (Local1, 0x8000)) { XOr (Local1, 0xFFFF, Local1) Increment (Local1) } Multiply (Local0, Local1, Local1) Divide (Local1, 0x03E8, , Local1) } Store (Local1, Index (BATS, 0x01)) Multiply (Local2, 0x0A, Index (BATS, 0x02)) Store (Local0, Index (BATS, 0x03)) Return (BATS) } } Scope (\) { Name (PWRS, Ones) } Device (ACAD) { Name (_HID, "ACPI0003") Name (_PCL, Package (0x01) { \_SB }) Method (_PSR, 0, NotSerialized) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { And (PHSD (0xD4, 0x80), 0x0400, Local1) } Else { Store (ACAT, Local1) } Store (Local1, PWRS) If (Local1) { Return (One) } Else { Return (Zero) } } Method (_STA, 0, NotSerialized) { Return (0x0F) } } } Device (DMAC) { Name (_HID, EisaId ("PNP0200")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x01, // Alignment 0x20, // Length ) IO (Decode16, 0x0081, // Range Minimum 0x0081, // Range Maximum 0x01, // Alignment 0x11, // Length ) IO (Decode16, 0x0093, // Range Minimum 0x0093, // Range Maximum 0x01, // Alignment 0x0D, // Length ) IO (Decode16, 0x00C0, // Range Minimum 0x00C0, // Range Maximum 0x01, // Alignment 0x20, // Length ) DMA (Compatibility, NotBusMaster, Transfer8_16, ) {4} }) } Device (FWHD) { Name (_HID, EisaId ("INT0800")) Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0xFF000000, // Address Base 0x01000000, // Address Length ) }) } Device (HPET) { Name (_HID, EisaId ("PNP0103")) Name (BUF0, ResourceTemplate () { Memory32Fixed (ReadOnly, 0xFED00000, // Address Base 0x00000400, // Address Length _Y17) }) Method (_STA, 0, NotSerialized) { If (LGreaterEqual (OSYS, 0x07D1)) { If (HPAE) { Return (0x0F) } } Else { If (HPAE) { Return (0x0B) } } Return (0x00) } Method (_CRS, 0, Serialized) { If (HPAE) { CreateDWordField (BUF0, \_SB.PCI0.LPCB.HPET._Y17._BAS, HPT0) If (LEqual (HPAS, 0x01)) { Store (0xFED01000, HPT0) } If (LEqual (HPAS, 0x02)) { Store (0xFED02000, HPT0) } If (LEqual (HPAS, 0x03)) { Store (0xFED03000, HPT0) } } Return (BUF0) } } Device (IPIC) { Name (_HID, EisaId ("PNP0000")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0020, // Range Minimum 0x0020, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0024, // Range Minimum 0x0024, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0028, // Range Minimum 0x0028, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x002C, // Range Minimum 0x002C, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0030, // Range Minimum 0x0030, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0034, // Range Minimum 0x0034, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0038, // Range Minimum 0x0038, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x003C, // Range Minimum 0x003C, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A0, // Range Minimum 0x00A0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A4, // Range Minimum 0x00A4, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A8, // Range Minimum 0x00A8, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00AC, // Range Minimum 0x00AC, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00B0, // Range Minimum 0x00B0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00B4, // Range Minimum 0x00B4, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00B8, // Range Minimum 0x00B8, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00BC, // Range Minimum 0x00BC, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x04D0, // Range Minimum 0x04D0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IRQNoFlags () {2} }) } Device (MATH) { Name (_HID, EisaId ("PNP0C04")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x00F0, // Range Minimum 0x00F0, // Range Maximum 0x01, // Alignment 0x01, // Length ) IRQNoFlags () {13} }) } Device (LDRC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x02) Name (BUF0, ResourceTemplate () { IO (Decode16, 0x004E, // Range Minimum 0x004E, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0061, // Range Minimum 0x0061, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0063, // Range Minimum 0x0063, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0065, // Range Minimum 0x0065, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0067, // Range Minimum 0x0067, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0080, // Range Minimum 0x0080, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0092, // Range Minimum 0x0092, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x00B2, // Range Minimum 0x00B2, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0680, // Range Minimum 0x0680, // Range Maximum 0x01, // Alignment 0x70, // Length ) IO (Decode16, 0x0800, // Range Minimum 0x0800, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x1000, // Range Minimum 0x1000, // Range Maximum 0x01, // Alignment 0x80, // Length ) IO (Decode16, 0x1180, // Range Minimum 0x1180, // Range Maximum 0x01, // Alignment 0x40, // Length ) IO (Decode16, 0x1640, // Range Minimum 0x1640, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0xFE00, // Range Minimum 0xFE00, // Range Maximum 0x01, // Alignment 0x02, // Length ) }) Name (BUF1, ResourceTemplate () { IO (Decode16, 0x004E, // Range Minimum 0x004E, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0061, // Range Minimum 0x0061, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0063, // Range Minimum 0x0063, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0065, // Range Minimum 0x0065, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0067, // Range Minimum 0x0067, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0080, // Range Minimum 0x0080, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0092, // Range Minimum 0x0092, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x00B2, // Range Minimum 0x00B2, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0680, // Range Minimum 0x0680, // Range Maximum 0x01, // Alignment 0x80, // Length ) IO (Decode16, 0x0800, // Range Minimum 0x0800, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x1000, // Range Minimum 0x1000, // Range Maximum 0x01, // Alignment 0x80, // Length ) IO (Decode16, 0x1180, // Range Minimum 0x1180, // Range Maximum 0x01, // Alignment 0x40, // Length ) IO (Decode16, 0x1640, // Range Minimum 0x1640, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0xFE00, // Range Minimum 0xFE00, // Range Maximum 0x01, // Alignment 0x02, // Length ) }) Method (_CRS, 0, Serialized) { If (CIRP) { Return (BUF0) } Return (BUF1) } } Device (RTC) { Name (_HID, EisaId ("PNP0B00")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {8} }) } Device (TIMR) { Name (_HID, EisaId ("PNP0100")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x01, // Alignment 0x04, // Length ) IO (Decode16, 0x0050, // Range Minimum 0x0050, // Range Maximum 0x10, // Alignment 0x04, // Length ) IRQNoFlags () {0} }) } Device (SPIC) { Name (_HID, EisaId ("SNY6001")) Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x01, // Alignment 0x20, // Length _Y18) IRQNoFlags (_Y19) {} }) Name (SSRC, ResourceTemplate () { IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x01, // Alignment 0x20, // Length ) IRQNoFlags () {} }) Name (SIRT, Package (0x04) { 0x06, 0x09, 0x0A, 0x0B }) Method (_CRS, 0, NotSerialized) { CreateByteField (RSRC, \_SB.PCI0.LPCB.SPIC._Y18._MIN, IOM1) CreateByteField (RSRC, 0x03, IOM2) CreateWordField (RSRC, \_SB.PCI0.LPCB.SPIC._Y18._MIN, IO1I) CreateWordField (RSRC, \_SB.PCI0.LPCB.SPIC._Y18._MAX, IO1A) CreateWordField (RSRC, \_SB.PCI0.LPCB.SPIC._Y19._INT, IRQV) If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { Store (PHSB (0xD4, 0x9C), IOM1) Store (PHSB (0xD4, 0x9D), IOM2) } Else { Store (\_SB.PCI0.LPCB.EC0.SLOB, IOM1) Store (\_SB.PCI0.LPCB.EC0.SHIB, IOM2) } Store (IO1I, IO1A) If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { ShiftRight (PHSB (0xD4, 0x9B), 0x04, Local0) } Else { ShiftRight (\_SB.PCI0.LPCB.EC0.SIRQ, 0x04, Local0) } FindSetRightBit (Local0, Local1) If (Local1) { Decrement (Local1) Store (DerefOf (Index (SIRT, Local1)), Local0) ShiftLeft (0x01, Local0, IRQV) } Return (RSRC) } Method (_SRS, 1, NotSerialized) { CreateByteField (Arg0, 0x02, IOA1) CreateByteField (Arg0, 0x03, IOA2) CreateWordField (Arg0, 0x02, IOA0) CreateWordField (Arg0, 0x09, IRQV) FindSetRightBit (IRQV, Local0) If (Local0) { Decrement (Local0) Store (Match (SIRT, MEQ, Local0, MTR, 0x00, 0x00), Local1) ShiftLeft (0x10, Local1, Local2) } Else { Store (0x00, Local2) } If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { PHSW (0xD5, 0x9B, Local2) } Else { Store (Local2, \_SB.PCI0.LPCB.EC0.SIRQ) } If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { PHSW (0xD5, 0x9D, IOA2) PHSW (0xD5, 0x9C, IOA1) } Else { Store (IOA2, \_SB.PCI0.LPCB.EC0.SHIB) Store (IOA1, \_SB.PCI0.LPCB.EC0.SLOB) } Sleep (0x01) Store (Or (And (IOA0, 0xFFF0), 0x001C0001), \_SB.PCI0.LPCB.GID3) } Name (_PRS, ResourceTemplate () { StartDependentFnNoPri () { IO (Decode16, 0xC000, // Range Minimum 0xC000, // Range Maximum 0x01, // Alignment 0x20, // Length ) } StartDependentFnNoPri () { IO (Decode16, 0xC800, // Range Minimum 0xC800, // Range Maximum 0x01, // Alignment 0x20, // Length ) } StartDependentFnNoPri () { IO (Decode16, 0xD000, // Range Minimum 0xD000, // Range Maximum 0x01, // Alignment 0x20, // Length ) } StartDependentFnNoPri () { IO (Decode16, 0xD800, // Range Minimum 0xD800, // Range Maximum 0x01, // Alignment 0x20, // Length ) } EndDependentFn () IRQNoFlags () {6,9,10,11} }) Method (_DIS, 0, NotSerialized) { Store (_CRS (), SSRC) If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { PHSW (0xD5, 0x9B, 0x00) PHSW (0xD5, 0x9D, 0x00) PHSW (0xD5, 0x9C, 0x00) } Else { Store (0x00, \_SB.PCI0.LPCB.EC0.SIRQ) Store (0x00, \_SB.PCI0.LPCB.EC0.SHIB) Store (0x00, \_SB.PCI0.LPCB.EC0.SLOB) } Sleep (0x01) Store (0x00, \_SB.PCI0.LPCB.GID3) } Method (_STA, 0, NotSerialized) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { ShiftRight (PHSB (0xD4, 0x9B), 0x04, Local0) } Else { ShiftRight (\_SB.PCI0.LPCB.EC0.SIRQ, 0x04, Local0) } FindSetRightBit (Local0, Local1) If (Local1) { Return (0x0F) } Else { Return (0x0D) } } } Device (SNC) { Name (_HID, EisaId ("SNY5001")) Method (GBRT, 0, NotSerialized) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { Store (PHSD (0xD4, 0x96), Local0) } Else { Store (\_SB.PCI0.LPCB.EC0.BRIT, Local0) } Return (PHSB (0xCF, Local0)) } Method (SBRT, 1, NotSerialized) { PHSB (0xC3, Arg0) Return (Zero) } Method (GPBR, 0, NotSerialized) { Return (PHSB (0xC1, 0x00)) } Method (SPBR, 1, NotSerialized) { PHSB (0xC2, Arg0) Return (Zero) } Method (PWAK, 0, NotSerialized) { Acquire (PLOK, 0xFFFF) Sleep (0x64) Notify (\_PR.CPU0, 0x80) If (MPEN) { Notify (\_PR.CPU1, 0x80) } Sleep (0x64) Notify (\_PR.CPU0, 0x81) If (MPEN) { Notify (\_PR.CPU1, 0x81) } Release (PLOK) Return (Zero) } Method (PWRN, 0, NotSerialized) { Notify (\_SB.PWRB, 0x80) } Method (CSXB, 1, NotSerialized) { Acquire (MPHS, 0xFFFF) Store (Arg0, SXBF) PHS0 (0xCC) Store (SXBF, Local0) Release (MPHS) Return (Local0) } Method (GWDP, 0, NotSerialized) { Return (And (PHSB (0xD4, 0xF4), 0x0F)) } Method (CDPW, 1, NotSerialized) { Store (\_SB.PCI0.LPCB.EC0.OPTP, Local0) If (LEqual (Local0, 0x01)) { Store (\_SB.PCI0.LPCB.EC0.OPOW, Local0) If (LEqual (Arg0, One)) { If (LNotEqual (Local0, 0x00)) { Store (0x00, \_SB.PCI0.LPCB.EC0.OPOW) } } Else { If (LEqual (Arg0, Zero)) { If (LEqual (Local0, 0x00)) { Store (0x01, \_SB.PCI0.LPCB.EC0.OPOW) } } } } } Method (GCDP, 0, NotSerialized) { Store (\_SB.PCI0.LPCB.EC0.OPTP, Local1) If (LEqual (Local1, 0x01)) { Store (\_SB.PCI0.LPCB.EC0.OPOW, Local1) Return (And (LNot (Local1), One)) } Else { Return (0xFFFFFFFF) } } Name (LRST, 0x00) Method (SLRS, 1, NotSerialized) { And (Arg0, 0x07, Arg0) Store (Arg0, LRST) Return (Zero) } Mutex (MIDB, 0x00) Method (RBMF, 1, Serialized) { Acquire (MIDB, 0xFFFF) And (Arg0, 0x00010000, Local0) PHSD (0xDC, Local0) Sleep (0x07D0) Store (0x03000000, Local0) Store (PHSD (0xDC, Local0), Local0) If (LEqual (0x03, Local0)) { Sleep (0x0BB8) } Release (MIDB) Return (Local0) } Method (RSBI, 1, Serialized) { Return (0x00) } Method (CBMF, 1, Serialized) { Acquire (MIDB, 0xFFFF) Or (And (Arg0, 0x0001FFFF), 0x02000000, Local0) Store (PHSD (0xDC, Local0), Local0) Release (MIDB) Return (Zero) } Method (LNPW, 1, NotSerialized) { If (\_SB.PCI0.LPCB.EC0.ECOK) { If (Arg0) { If (\_SB.PCI0.LPCB.EC0.EOFF) { Store (0x00, \_SB.PCI0.LPCB.EC0.EOFF) Sleep (0x6E) Store (0x00, \_SB.PCI0.LPCB.EC0.ERST) } } Else { Store (0x01, \_SB.PCI0.LPCB.EC0.ERST) Store (0x01, \_SB.PCI0.LPCB.EC0.EOFF) } } } Method (GLNP, 0, NotSerialized) { If (\_SB.PCI0.LPCB.EC0.ECOK) { If (\_SB.PCI0.LPCB.EC0.EOFF) { Return (0x00) } Else { Return (0x01) } } Return (0x01) } Method (SGCV, 1, Serialized) { Return (PHSB (0xE0, Arg0)) } Method (GGCV, 0, NotSerialized) { Return (PHS (0xE1)) } } Device (TPM) { Method (_HID, 0, NotSerialized) { If (LEqual (TPMV, 0x01)) { Return (0x0201D824) } If (LEqual (TPMV, 0x02)) { Return (0x0435CF4D) } If (LEqual (TPMV, 0x03)) { Return (0x01016D08) } Return (0x310CD041) } Name (_CID, 0x310CD041) Name (_UID, 0x01) Method (_STA, 0, NotSerialized) { If (TPRS) { Return (0x0F) } Return (0x00) } Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0xFED40000, // Address Base 0x00005000, // Address Length ) }) Method (UCMP, 2, NotSerialized) { If (LNotEqual (0x10, SizeOf (Arg0))) { Return (0x00) } If (LNotEqual (0x10, SizeOf (Arg1))) { Return (0x00) } Store (0x00, Local0) While (LLess (Local0, 0x10)) { If (LNotEqual (DerefOf (Index (Arg0, Local0)), DerefOf (Index ( Arg1, Local0)))) { Return (0x00) } Increment (Local0) } Return (0x01) } Method (_DSM, 4, Serialized) { If (LEqual (UCMP (Arg0, Buffer (0x10) { /* 0000 */ 0xA6, 0xFA, 0xDD, 0x3D, 0x1B, 0x36, 0xB4, 0x4E, /* 0008 */ 0xA4, 0x24, 0x8D, 0x10, 0x08, 0x9D, 0x16, 0x53 }), 0x01)) { If (LEqual (Arg2, 0x00)) { Return (Buffer (0x01) { 0x7F }) } If (LEqual (Arg2, 0x01)) { Return (Buffer (0x04) { "1.0" }) } If (LEqual (Arg2, 0x02)) { If (TPRS) { If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x00)) { Store (0x00, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x01)) { Store (0x01, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x02)) { Store (0x02, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x03)) { Store (0x03, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x04)) { Store (0x04, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x05)) { Store (0x05, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x06)) { Store (0x06, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x07)) { Store (0x07, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x08)) { Store (0x08, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x09)) { Store (0x09, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x0A)) { Store (0x0A, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x0B)) { Store (0x0B, PPRQ) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x0C)) { Store (0x00, PPRQ) Return (0x01) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x0D)) { Store (0x00, PPRQ) Return (0x01) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x0E)) { Store (0x0E, PPRQ) Return (0x00) } Return (0x01) } Return (0x01) } If (LEqual (Arg2, 0x03)) { Name (TMP1, Package (0x02) { 0x00, 0xFFFFFFFF }) Store (\_SB.PPRQ, Index (TMP1, 0x01)) Return (TMP1) } If (LEqual (Arg2, 0x04)) { Return (0x01) } If (LEqual (Arg2, 0x05)) { Name (TMP2, Package (0x03) { 0x00, 0xFFFFFFFF, 0xFFFFFFFF }) Store (\_SB.PPLO, Index (TMP2, 0x01)) If (LOr (LOr (LGreater (\_SB.PPLO, 0x0E), LEqual (\_SB.PPLO, 0x0C)), LEqual ( \_SB.PPLO, 0x0D))) { Store (0xFFFFFFF1, Index (TMP2, 0x02)) Return (TMP2) } If (LEqual (PPRP, 0xFF)) { Store (0xFFFFFFF1, Index (TMP2, 0x02)) Return (TMP2) } If (PPOR) { Store (0xFFFFFFF0, Index (TMP2, 0x02)) Return (TMP2) } Store (\_SB.PPRP, Index (TMP2, 0x02)) Return (TMP2) } If (LEqual (Arg2, 0x06)) { CreateByteField (Arg3, 0x04, LAN0) CreateByteField (Arg3, 0x05, LAN1) Or (ShiftLeft (LAN1, 0x08), LAN0, P80H) If (LOr (LEqual (LAN0, 0x65), LEqual (LAN0, 0x45))) { If (LOr (LEqual (LAN1, 0x6E), LEqual (LAN1, 0x4E))) { Return (0x00) } } Return (0x01) } Return (0x01) } If (LEqual (UCMP (Arg0, Buffer (0x10) { /* 0000 */ 0xED, 0x54, 0x60, 0x37, 0x13, 0xCC, 0x75, 0x46, /* 0008 */ 0x90, 0x1C, 0x47, 0x56, 0xD7, 0xF2, 0xD4, 0x5D }), 0x01)) { If (LEqual (Arg2, 0x00)) { Return (Buffer (0x01) { 0x01 }) } If (LEqual (Arg2, 0x01)) { If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x00)) { Store (0x00, \_SB.MOR) Return (0x00) } If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x01)) { Store (0x01, \_SB.MOR) Return (0x00) } } Return (0x01) } Return (Buffer (0x01) { 0x00 }) } } Device (PS2K) { Name (_HID, EisaId ("PNP0303")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0060, // Range Minimum 0x0060, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0064, // Range Minimum 0x0064, // Range Maximum 0x01, // Alignment 0x01, // Length ) IRQ (Edge, ActiveHigh, Exclusive, ) {1} }) } Device (PS2M) { Name (_HID, EisaId ("SNY9001")) Name (_CID, 0x130FD041) Name (_CRS, ResourceTemplate () { IRQ (Edge, ActiveHigh, Exclusive, ) {12} }) } } Device (PATA) { Name (_ADR, 0x001F0001) OperationRegion (PACS, PCI_Config, 0x40, 0xC0) Field (PACS, DWordAcc, NoLock, Preserve) { PRIT, 16, Offset (0x04), PSIT, 4, Offset (0x08), SYNC, 4, Offset (0x0A), SDT0, 2, , 2, SDT1, 2, Offset (0x14), ICR0, 4, ICR1, 4, ICR2, 4, ICR3, 4, ICR4, 4, ICR5, 4 } Device (PRID) { Name (_ADR, 0x00) Method (_GTM, 0, NotSerialized) { Name (PBUF, Buffer (0x14) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0010 */ 0x00, 0x00, 0x00, 0x00 }) CreateDWordField (PBUF, 0x00, PIO0) CreateDWordField (PBUF, 0x04, DMA0) CreateDWordField (PBUF, 0x08, PIO1) CreateDWordField (PBUF, 0x0C, DMA1) CreateDWordField (PBUF, 0x10, FLAG) Store (GETP (PRIT), PIO0) Store (GDMA (And (SYNC, 0x01), And (ICR3, 0x01), And (ICR0, 0x01), SDT0, And (ICR1, 0x01)), DMA0) If (LEqual (DMA0, 0xFFFFFFFF)) { Store (PIO0, DMA0) } If (And (PRIT, 0x4000)) { If (LEqual (And (PRIT, 0x90), 0x80)) { Store (0x0384, PIO1) } Else { Store (GETT (PSIT), PIO1) } } Else { Store (0xFFFFFFFF, PIO1) } Store (GDMA (And (SYNC, 0x02), And (ICR3, 0x02), And (ICR0, 0x02), SDT1, And (ICR1, 0x02)), DMA1) If (LEqual (DMA1, 0xFFFFFFFF)) { Store (PIO1, DMA1) } Store (GETF (And (SYNC, 0x01), And (SYNC, 0x02), PRIT), FLAG) If (And (LEqual (PIO0, 0xFFFFFFFF), LEqual (DMA0, 0xFFFFFFFF))) { Store (0x78, PIO0) Store (0x14, DMA0) Store (0x03, FLAG) } Return (PBUF) } Method (_STM, 3, NotSerialized) { CreateDWordField (Arg0, 0x00, PIO0) CreateDWordField (Arg0, 0x04, DMA0) CreateDWordField (Arg0, 0x08, PIO1) CreateDWordField (Arg0, 0x0C, DMA1) CreateDWordField (Arg0, 0x10, FLAG) If (LEqual (SizeOf (Arg1), 0x0200)) { And (PRIT, 0xC0F0, PRIT) And (SYNC, 0x02, SYNC) Store (0x00, SDT0) And (ICR0, 0x02, ICR0) And (ICR1, 0x02, ICR1) And (ICR3, 0x02, ICR3) And (ICR5, 0x02, ICR5) CreateWordField (Arg1, 0x62, W490) CreateWordField (Arg1, 0x6A, W530) CreateWordField (Arg1, 0x7E, W630) CreateWordField (Arg1, 0x80, W640) CreateWordField (Arg1, 0xB0, W880) CreateWordField (Arg1, 0xBA, W930) Or (PRIT, 0x8004, PRIT) If (LAnd (And (FLAG, 0x02), And (W490, 0x0800))) { Or (PRIT, 0x02, PRIT) } Or (PRIT, SETP (PIO0, W530, W640), PRIT) If (And (FLAG, 0x01)) { Or (SYNC, 0x01, SYNC) Store (SDMA (DMA0), SDT0) If (LLess (DMA0, 0x1E)) { Or (ICR3, 0x01, ICR3) } If (LLess (DMA0, 0x3C)) { Or (ICR0, 0x01, ICR0) } If (And (W930, 0x2000)) { Or (ICR1, 0x01, ICR1) } } } If (LEqual (SizeOf (Arg2), 0x0200)) { And (PRIT, 0xBF0F, PRIT) Store (0x00, PSIT) And (SYNC, 0x01, SYNC) Store (0x00, SDT1) And (ICR0, 0x01, ICR0) And (ICR1, 0x01, ICR1) And (ICR3, 0x01, ICR3) And (ICR5, 0x01, ICR5) CreateWordField (Arg2, 0x62, W491) CreateWordField (Arg2, 0x6A, W531) CreateWordField (Arg2, 0x7E, W631) CreateWordField (Arg2, 0x80, W641) CreateWordField (Arg2, 0xB0, W881) CreateWordField (Arg2, 0xBA, W931) Or (PRIT, 0x8040, PRIT) If (LAnd (And (FLAG, 0x08), And (W491, 0x0800))) { Or (PRIT, 0x20, PRIT) } If (And (FLAG, 0x10)) { Or (PRIT, 0x4000, PRIT) If (LGreater (PIO1, 0xF0)) { Or (PRIT, 0x80, PRIT) } Else { Or (PRIT, 0x10, PRIT) Store (SETT (PIO1, W531, W641), PSIT) } } If (And (FLAG, 0x04)) { Or (SYNC, 0x02, SYNC) Store (SDMA (DMA1), SDT1) If (LLess (DMA1, 0x1E)) { Or (ICR3, 0x02, ICR3) } If (LLess (DMA1, 0x3C)) { Or (ICR0, 0x02, ICR0) } If (And (W931, 0x2000)) { Or (ICR1, 0x02, ICR1) } } } } Device (P_D0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Name (PIB0, Buffer (0x0E) { /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF }) CreateByteField (PIB0, 0x01, PMD0) CreateByteField (PIB0, 0x08, DMD0) If (And (PRIT, 0x02)) { If (LEqual (And (PRIT, 0x09), 0x08)) { Store (0x08, PMD0) } Else { Store (0x0A, PMD0) ShiftRight (And (PRIT, 0x0300), 0x08, Local0) ShiftRight (And (PRIT, 0x3000), 0x0C, Local1) Add (Local0, Local1, Local2) If (LEqual (0x03, Local2)) { Store (0x0B, PMD0) } If (LEqual (0x05, Local2)) { Store (0x0C, PMD0) } } } Else { Store (0x01, PMD0) } If (And (SYNC, 0x01)) { Store (Or (SDT0, 0x40), DMD0) If (And (ICR1, 0x01)) { If (And (ICR0, 0x01)) { Add (DMD0, 0x02, DMD0) } If (And (ICR3, 0x01)) { Store (0x45, DMD0) } } } Else { Or (Subtract (And (PMD0, 0x07), 0x02), 0x20, DMD0) } Return (PIB0) } } Device (P_D1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Name (PIB1, Buffer (0x0E) { /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF }) CreateByteField (PIB1, 0x01, PMD1) CreateByteField (PIB1, 0x08, DMD1) If (And (PRIT, 0x20)) { If (LEqual (And (PRIT, 0x90), 0x80)) { Store (0x08, PMD1) } Else { Add (And (PSIT, 0x03), ShiftRight (And (PSIT, 0x0C), 0x02), Local0) If (LEqual (0x05, Local0)) { Store (0x0C, PMD1) } Else { If (LEqual (0x03, Local0)) { Store (0x0B, PMD1) } Else { Store (0x0A, PMD1) } } } } Else { Store (0x01, PMD1) } If (And (SYNC, 0x02)) { Store (Or (SDT1, 0x40), DMD1) If (And (ICR1, 0x02)) { If (And (ICR0, 0x02)) { Add (DMD1, 0x02, DMD1) } If (And (ICR3, 0x02)) { Store (0x45, DMD1) } } } Else { Or (Subtract (And (PMD1, 0x07), 0x02), 0x20, DMD1) } Return (PIB1) } } } Name (FWSO, "FWSO") Name (_PSC, 0x00) Method (_PS0, 0, NotSerialized) { Store (_PSC, Local0) Store (0x00, _PSC) If (LEqual (Local0, 0x03)) { Store (0x01, INFB) While (INFB) { Store (0x20, BCMD) Store (Zero, SMIC) If (LAnd (LEqual (INFB, 0x01), LGreaterEqual (\_SB.OSTB, 0x04))) { Sleep (0x01F4) } } } } Method (_PS3, 0, NotSerialized) { Store (0x03, _PSC) } Scope (\_SB) { Mutex (MHDS, 0x00) Method (PHDS, 2, NotSerialized) { Acquire (\_SB.MHDS, 0xFFFF) While (\PHSD (Add (0xB0, Arg0), 0x01)) { Sleep (Arg1) } Release (\_SB.MHDS) } } Scope (PRID.P_D0) { Name (_PSC, 0x00) Method (_PS0, 0, NotSerialized) { Store (_PSC, Local0) Store (0x00, _PSC) If (LEqual (Local0, 0x03)) { \_SB.PHDS (0x00, 0x0A) \_SB.PHDS (0x01, 0x0A) } } Method (_PS3, 0, NotSerialized) { Store (0x03, _PSC) } } Scope (PRID.P_D1) { Name (_PSC, 0x00) Method (_PS0, 0, NotSerialized) { Store (_PSC, Local0) Store (0x00, _PSC) If (LEqual (Local0, 0x03)) { \_SB.PHDS (0x00, 0x0A) \_SB.PHDS (0x01, 0x0A) } } Method (_PS3, 0, NotSerialized) { Store (0x03, _PSC) } } } Device (SATA) { Name (_ADR, 0x001F0002) OperationRegion (SACS, PCI_Config, 0x40, 0xC0) Field (SACS, DWordAcc, NoLock, Preserve) { PRIT, 16, SECT, 16, PSIT, 4, SSIT, 4, Offset (0x08), SYNC, 4, Offset (0x0A), SDT0, 2, , 2, SDT1, 2, Offset (0x0B), SDT2, 2, , 2, SDT3, 2, Offset (0x14), ICR0, 4, ICR1, 4, ICR2, 4, ICR3, 4, ICR4, 4, ICR5, 4, Offset (0x50), MAPV, 2 } } Device (SBUS) { Name (_ADR, 0x001F0003) OperationRegion (SMBP, PCI_Config, 0x40, 0xC0) Field (SMBP, DWordAcc, NoLock, Preserve) { , 2, I2CE, 1 } OperationRegion (SMBI, SystemIO, 0x18E0, 0x10) Field (SMBI, ByteAcc, NoLock, Preserve) { HSTS, 8, Offset (0x02), HCON, 8, HCOM, 8, TXSA, 8, DAT0, 8, DAT1, 8, HBDR, 8, PECR, 8, RXSA, 8, SDAT, 16 } Method (SSXB, 2, Serialized) { If (STRT ()) { Return (0x00) } Store (0x00, I2CE) Store (0xBF, HSTS) Store (Arg0, TXSA) Store (Arg1, HCOM) Store (0x48, HCON) If (COMP ()) { Or (HSTS, 0xFF, HSTS) Return (0x01) } Return (0x00) } Method (SRXB, 1, Serialized) { If (STRT ()) { Return (0xFFFF) } Store (0x00, I2CE) Store (0xBF, HSTS) Store (Or (Arg0, 0x01), TXSA) Store (0x44, HCON) If (COMP ()) { Or (HSTS, 0xFF, HSTS) Return (DAT0) } Return (0xFFFF) } Method (SWRB, 3, Serialized) { If (STRT ()) { Return (0x00) } Store (0x00, I2CE) Store (0xBF, HSTS) Store (Arg0, TXSA) Store (Arg1, HCOM) Store (Arg2, DAT0) Store (0x48, HCON) If (COMP ()) { Or (HSTS, 0xFF, HSTS) Return (0x01) } Return (0x00) } Method (SRDB, 2, Serialized) { If (STRT ()) { Return (0xFFFF) } Store (0x00, I2CE) Store (0xBF, HSTS) Store (Or (Arg0, 0x01), TXSA) Store (Arg1, HCOM) Store (0x48, HCON) If (COMP ()) { Or (HSTS, 0xFF, HSTS) Return (DAT0) } Return (0xFFFF) } Method (SBLW, 4, Serialized) { If (STRT ()) { Return (0x00) } Store (Arg3, I2CE) Store (0xBF, HSTS) Store (Arg0, TXSA) Store (Arg1, HCOM) Store (SizeOf (Arg2), DAT0) Store (0x00, Local1) Store (DerefOf (Index (Arg2, 0x00)), HBDR) Store (0x54, HCON) While (LGreater (SizeOf (Arg2), Local1)) { Store (0x0FA0, Local0) While (LAnd (LNot (And (HSTS, 0x80)), Local0)) { Decrement (Local0) Stall (0x32) } If (LNot (Local0)) { KILL () Return (0x00) } Store (0x80, HSTS) Increment (Local1) If (LGreater (SizeOf (Arg2), Local1)) { Store (DerefOf (Index (Arg2, Local1)), HBDR) } } If (COMP ()) { Or (HSTS, 0xFF, HSTS) Return (0x01) } Return (0x00) } Method (SBLR, 3, Serialized) { Name (TBUF, Buffer (0x0100) {}) If (STRT ()) { Return (0x00) } Store (Arg2, I2CE) Store (0xBF, HSTS) Store (Or (Arg0, 0x01), TXSA) Store (Arg1, HCOM) Store (0x54, HCON) Store (0x0FA0, Local0) While (LAnd (LNot (And (HSTS, 0x80)), Local0)) { Decrement (Local0) Stall (0x32) } If (LNot (Local0)) { KILL () Return (0x00) } Store (DAT0, Index (TBUF, 0x00)) Store (0x80, HSTS) Store (0x01, Local1) While (LLess (Local1, DerefOf (Index (TBUF, 0x00)))) { Store (0x0FA0, Local0) While (LAnd (LNot (And (HSTS, 0x80)), Local0)) { Decrement (Local0) Stall (0x32) } If (LNot (Local0)) { KILL () Return (0x00) } Store (HBDR, Index (TBUF, Local1)) Store (0x80, HSTS) Increment (Local1) } If (COMP ()) { Or (HSTS, 0xFF, HSTS) Return (TBUF) } Return (0x00) } Method (STRT, 0, Serialized) { Store (0xC8, Local0) While (Local0) { If (And (HSTS, 0x40)) { Decrement (Local0) Sleep (0x01) If (LEqual (Local0, 0x00)) { Return (0x01) } } Else { Store (0x00, Local0) } } Store (0x0FA0, Local0) While (Local0) { If (And (HSTS, 0x01)) { Decrement (Local0) Stall (0x32) If (LEqual (Local0, 0x00)) { KILL () } } Else { Return (0x00) } } Return (0x01) } Method (COMP, 0, Serialized) { Store (0x0FA0, Local0) While (Local0) { If (And (HSTS, 0x02)) { Return (0x01) } Else { Decrement (Local0) Stall (0x32) If (LEqual (Local0, 0x00)) { KILL () } } } Return (0x00) } Method (KILL, 0, Serialized) { Or (HCON, 0x02, HCON) Or (HSTS, 0xFF, HSTS) } } } Device (DOCK) { Name (_HID, EisaId ("PNP0C15")) Name (_UID, 0x00) Name (_BDN, 0xFFFFFFFF) Method (_EJ0, 1, NotSerialized) { Store (0x01, \_SB.PCI0.LPCB.EC0.UDRQ) Wait (UDCK, 0xFFFF) Reset (UDCK) Notify (\_SB.PCI0.RP04, 0x00) } Event (UDCK) Method (_DCK, 1, NotSerialized) { If (Arg0) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { Store (PHSB (0xD4, 0x9E), Local0) Or (Local0, Not (0x40), Local0) PHSW (0xD5, 0x9E, Local0) } Else { Store (0x01, \_SB.PCI0.LPCB.EC0.IUSE) } } Else { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { Store (PHSB (0xD4, 0x9E), Local0) And (Local0, Not (0x40), Local0) PHSW (0xD5, 0x9E, Local0) } Else { Store (0x00, \_SB.PCI0.LPCB.EC0.IUSE) } } Return (0x01) } Method (_STA, 0, NotSerialized) { If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00)) { If (LAnd (PHSB (0xD4, 0x9E), 0x40)) { Return (0x0F) } Else { Return (0x00) } } Else { If (\_SB.PCI0.LPCB.EC0.IUSE) { Return (0x0F) } Else { Return (0x00) } } } } } }