/* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20160831-64 * Copyright (c) 2000 - 2016 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of dsdt.dat, Fri Mar 23 21:17:00 2018 * * Original Table Header: * Signature "DSDT" * Length 0x0000572C (22316) * Revision 0x01 **** 32-bit table (V1), no 64-bit math support * Checksum 0x98 * OEM ID "APPLE " * OEM Table ID "MacBookA" * OEM Revision 0x00030001 (196609) * Compiler ID "INTL" * Compiler Version 0x20061109 (537268489) */ DefinitionBlock ("", "DSDT", 1, "APPLE ", "MacBookA", 0x00030001) { External (_SB_.PCI0.SATA.PRT1, UnknownObj) External (PDC0, UnknownObj) External (PDC1, UnknownObj) OperationRegion (PRT0, SystemIO, 0x80, 0x02) Field (PRT0, WordAcc, Lock, Preserve) { P80H, 16 } OperationRegion (PLMT, SystemIO, 0x0310, 0x0A) Field (PLMT, WordAcc, Lock, Preserve) { CPLT, 4, CFIL, 4, GPLT, 4, Offset (0x02), MPLT, 4 } OperationRegion (SPRT, SystemIO, 0x052E, 0x02) Field (SPRT, ByteAcc, Lock, Preserve) { SSMP, 8 } OperationRegion (IO_T, SystemIO, 0x0800, 0x10) Field (IO_T, ByteAcc, NoLock, Preserve) { TRPI, 16, Offset (0x04), Offset (0x06), Offset (0x08), TRP0, 8, TRPC, 8, Offset (0x0B), Offset (0x0C), Offset (0x0D), Offset (0x0E), Offset (0x0F), Offset (0x10) } OperationRegion (IO_D, SystemIO, 0x0810, 0x08) Field (IO_D, ByteAcc, NoLock, Preserve) { TRPD, 8 } OperationRegion (PMIO, SystemIO, 0x0400, 0x80) Field (PMIO, ByteAcc, NoLock, Preserve) { Offset (0x20), , 2, SPST, 1, Offset (0x42), , 1, GPEC, 1 } OperationRegion (GNVS, SystemMemory, 0x7F92FA98, 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, LIDS, 8, PWRS, 8, DBGS, 8, LINX, 8, Offset (0x14), ACTT, 8, PSVT, 8, TC1V, 8, TC2V, 8, TSPV, 8, CRTT, 8, DTSE, 8, DTS1, 8, DTS2, 8, DTSF, 8, BNUM, 8, B0SC, 8, B1SC, 8, B2SC, 8, B0SS, 8, B1SS, 8, B2SS, 8, Offset (0x28), APIC, 8, MPEN, 8, PCP0, 8, PCP1, 8, PPCM, 8, PPMF, 32, 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, BDSP, 8, PTY1, 8, PTY2, 8, PSCL, 8, TVF1, 8, TVF2, 8, Offset (0x63), GOPB, 32, 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 (0x82), GTF0, 56, GTF2, 56, IDEM, 8, GTF1, 56, GTF3, 56, GTF4, 56, GTF5, 56, Offset (0xBE), MTVL, 32, Offset (0xC8), R504, 8, R519, 8, R520, 8, R5PR, 4, R604, 8, R619, 8, R620, 8, R6PR, 4, R304, 8, R319, 8, R320, 8, R3PR, 4 } Name (\GBRD, 0x01) OperationRegion (NVSB, SystemIO, 0x0500, 0x0100) Field (NVSB, ByteAcc, NoLock, Preserve) { Offset (0x08), GP01, 1, GP02, 1, GP03, 1, GP04, 1, GP05, 1, GP06, 1, GP07, 1, GP08, 1, GP09, 1, GP10, 1, GP11, 1, GP12, 1, GP13, 1, GP14, 1, GP15, 1, GP16, 1, GP17, 1, GP18, 1, GP19, 1, GP20, 1, GP21, 1, GP22, 1, GP23, 1, GP24, 1, GP25, 1, GP26, 1, GP27, 1, GP28, 1, GP29, 1, GP30, 1, GP31, 1, GP32, 1, GP33, 1, GP34, 1, GP35, 1, GP36, 1, GP37, 1, GP38, 1, GP39, 1, GP40, 1, GP41, 1, GP42, 1, GP43, 1, GP44, 1, GP45, 1, GP46, 1, GP47, 1, GP48, 1, GP49, 1, GP50, 1, GP51, 1, GP52, 1, GP53, 1, GP54, 1, GP55, 1, GP56, 1, GP57, 1, GP58, 1, GP59, 1, GP60, 1, GP61, 1, GP62, 1, GP63, 1, GP64, 1, Offset (0xE5), GI38, 8, Offset (0xF6), GI55, 8, Offset (0xFD), GI62, 8, Offset (0xFF), , 2, APPS, 1, Offset (0x100) } Mutex (MUTX, 0x00) Scope (\_PR) { Processor (CPU0, 0x00, 0x00000410, 0x06) {} Processor (CPU1, 0x01, 0x00000410, 0x06) {} } Name (\DSEN, 0x01) Name (\ECON, 0x00) Name (\GPIC, 0x00) Name (\CTYP, 0x00) Name (\VFN0, 0x00) Name (WOWE, 0x00) Name (TAPD, 0x00) Method (OSDW, 0, NotSerialized) { If (OSYS == 0x2710) { Return (0x01) } Else { Return (0x00) } } Method (PINI, 0, NotSerialized) { If (CondRefOf (_OSI, Local0)) { If (_OSI ("Darwin")) { OSYS = 0x2710 } ElseIf (_OSI ("Linux")) { OSYS = 0x03E8 } ElseIf (_OSI ("Windows 2009")) { OSYS = 0x07D9 } ElseIf (_OSI ("Windows 2006")) { OSYS = 0x07D6 } ElseIf (_OSI ("Windows 2001 SP2")) { OSYS = 0x07D2 } ElseIf (_OSI ("Windows 2001 SP1")) { OSYS = 0x07D1 } ElseIf (_OSI ("Windows 2001")) { OSYS = 0x07D1 } } Else { OSYS = 0x07D0 } } Method (\_PIC, 1, NotSerialized) // _PIC: Interrupt Model { GPIC = Arg0 } Method (DTGP, 5, NotSerialized) { If (Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")) { If (Arg1 == One) { If (Arg2 == Zero) { Arg4 = Buffer (0x01) { 0x03 /* . */ } Return (One) } If (Arg2 == One) { Return (One) } } } Arg4 = Buffer (0x01) { 0x00 /* . */ } Return (Zero) } Name (_S0, Package (0x03) // _S0_: S0 System State { 0x00, 0x00, 0x00 }) Name (_S3, Package (0x03) // _S3_: S3 System State { 0x05, 0x05, 0x00 }) Name (_S4, Package (0x03) // _S4_: S4 System State { 0x06, 0x06, 0x00 }) Name (_S5, Package (0x03) // _S5_: S5 System State { 0x07, 0x07, 0x00 }) Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep { P80D = 0x00 P8XH (0x00, Arg0) \_SB.PCI0.LPCB.EC.ECSS = Arg0 If (!OSDW () && (Arg0 == 0x04)) { \_SB.PCI0.LPCB.EC.EWLO = 0x00 } } Method (_WAK, 1, NotSerialized) // _WAK: Wake { P8XH (0x00, 0x00) \_SB.PCI0.LPCB.EC.ECSS = 0x00 If (OSDW ()) { \_SB.PCI0.SBUS.ENAB () } LIDS = \_SB.PCI0.LPCB.EC.ELSW PWRS = \_SB.PCI0.LPCB.EC.EACP If (!OSDW ()) { \_SB.PCI0.LPCB.EC.LWE0 = 0x00 \_SB.PCI0.LPCB.EC.LWE1 = 0x00 \_SB.PCI0.LPCB.EC.LWE2 = 0x00 \_SB.PCI0.LPCB.EC.LWE3 = 0x00 } PNOT () Return (Package (0x02) { 0x00, 0x00 }) } Scope (\_GPE) { Method (_L02, 0, NotSerialized) // _Lxx: Level-Triggered GPE { GPEC = 0x00 } Method (_L11, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.RP05, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L14, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.RP05, 0x00) // Bus Check Notify (\_SB.PWRB, 0x02) // Device Wake } } Method (P8XH, 2, Serialized) { If (Arg0 == 0x00) { P80D = ((P80D & 0xFFFFFF00) | Arg1) } If (Arg0 == 0x01) { P80D = ((P80D & 0xFFFF00FF) | (Arg1 << 0x08)) } If (Arg0 == 0x02) { P80D = ((P80D & 0xFF00FFFF) | (Arg1 << 0x10)) } If (Arg0 == 0x03) { P80D = ((P80D & 0x00FFFFFF) | (Arg1 << 0x18)) } P80H = P80D /* \P80D */ } Method (PNOT, 0, Serialized) { If (MPEN) { If (PDC0 & 0x08) { Notify (\_PR.CPU0, 0x80) // Performance Capability Change If (PDC0 & 0x10) { If (0x01 != OSDW ()) { Sleep (0x64) } Notify (\_PR.CPU0, 0x81) // C-State Change } } If (PDC1 & 0x08) { Notify (\_PR.CPU1, 0x80) // Performance Capability Change If (PDC1 & 0x10) { If (0x01 != OSDW ()) { Sleep (0x64) } Notify (\_PR.CPU1, 0x81) // C-State Change } } } Else { Notify (\_PR.CPU0, 0x80) // Performance Capability Change If (0x01 != OSDW ()) { Sleep (0x64) } Notify (\_PR.CPU0, 0x81) // C-State Change } } Method (TRAP, 2, Serialized) { SMIF = Arg1 If (Arg0 == 0x01) { TRP0 = 0x00 Return (SMIF) /* \SMIF */ } If (Arg0 == 0x02) { TRPD = 0x00 Return (SMIF) /* \SMIF */ } Return (0x01) } Scope (\_SB) { Method (_INI, 0, NotSerialized) // _INI: Initialize { PINI () } Device (ADP1) { Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x3E, 0x04 }) Name (WK00, 0x01) Method (SWAK, 1, NotSerialized) { WK00 = (Arg0 & 0x03) If (!WK00) { WK00 = 0x01 } } Method (_PSR, 0, NotSerialized) // _PSR: Power Source { Return (PWRS) /* \PWRS */ } Method (_PCL, 0, NotSerialized) // _PCL: Power Consumer List { Return (\_SB) } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (OSDW ()) { If (\_SB.PCI0.LPCB.EC.ECOK) { If (Arg0) { If (WK00 & 0x01) { \_SB.PCI0.LPCB.EC.EWAI = 0x01 } If (WK00 & 0x02) { \_SB.PCI0.LPCB.EC.EWAR = 0x01 } } Else { \_SB.PCI0.LPCB.EC.EWAI = 0x00 \_SB.PCI0.LPCB.EC.EWAR = 0x00 } } } } } Device (LID0) { Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x3E, 0x04 }) Method (_LID, 0, NotSerialized) // _LID: Lid Status { Return (LIDS) /* \LIDS */ } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (\_SB.PCI0.LPCB.EC.ECOK) { If (Arg0) { \_SB.PCI0.LPCB.EC.EWLO = 0x01 } Else { \_SB.PCI0.LPCB.EC.EWLO = 0x00 } } } } Device (PNLF) { Name (_HID, EisaId ("APP0002")) // _HID: Hardware ID Name (_CID, "backlight") // _CID: Compatible ID Name (_UID, 0x0A) // _UID: Unique ID Name (_STA, 0x0B) // _STA: Status } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */) // _HID: Hardware ID } Device (SLPB) { Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */) // _HID: Hardware ID Name (_STA, 0x0B) // _STA: Status } Device (PCI0) { Method (_INI, 0, NotSerialized) // _INI: Initialize { If (OSDW ()) { \_SB.PCI0.SBUS.ENAB () } } Method (COHW, 0, NotSerialized) { Local0 = 0x00 If (\_SB.PCI0.LPCB.MCPV == 0xA1) { Local0 = 0x01 } Return (Local0) } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { Return (0x03) } Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State { Return (0x03) } Name (_ADR, 0x00) // _ADR: Address Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID Method (^BN00, 0, NotSerialized) { Return (0x00) } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (BN00 ()) } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Device (MCHC) { Name (_ADR, 0x00) // _ADR: Address } Device (MCH2) { Name (_ADR, 0x01) // _ADR: Address } Device (CMC2) { Name (_ADR, 0x00010001) // _ADR: Address OperationRegion (D1F4, SystemMemory, 0xF0009000, 0xFF) Field (D1F4, ByteAcc, NoLock, Preserve) { Offset (0x88), TOLM, 8 } } Name (BUF0, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, // Granularity 0x0000, // Range Minimum 0x00FF, // Range Maximum 0x0000, // Translation Offset 0x0100, // Length ,, ) IO (Decode16, 0x0CF8, // Range Minimum 0x0CFF, // Range Maximum 0x01, // Alignment 0x08, // Length ) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Granularity 0x0000, // Range Minimum 0x0CF7, // Range Maximum 0x0000, // Translation Offset 0x0CF8, // Length ,, , TypeStatic) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Granularity 0x0D00, // Range Minimum 0xFFFF, // Range Maximum 0x0000, // Translation Offset 0xF300, // 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 ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C4000, // Range Minimum 0x000C7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C8000, // Range Minimum 0x000CBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000CC000, // Range Minimum 0x000CFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D0000, // Range Minimum 0x000D3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D4000, // Range Minimum 0x000D7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D8000, // Range Minimum 0x000DBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000DC000, // Range Minimum 0x000DFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E0000, // Range Minimum 0x000E3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E4000, // Range Minimum 0x000E7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E8000, // Range Minimum 0x000EBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000EC000, // Range Minimum 0x000EFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000F0000, // Range Minimum 0x000FFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00010000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x00000000, // Range Minimum 0xFEBFFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00000000, // Length ,, _Y00, AddressRangeMemory, TypeStatic) }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { CreateDWordField (BUF0, \_SB.PCI0._Y00._MIN, M1MN) // _MIN: Minimum Base Address CreateDWordField (BUF0, \_SB.PCI0._Y00._MAX, M1MX) // _MAX: Maximum Base Address CreateDWordField (BUF0, \_SB.PCI0._Y00._LEN, M1LN) // _LEN: Length M1MN = (\_SB.PCI0.CMC2.TOLM << 0x1B) M1LN = ((M1MX - M1MN) + 0x01) Return (BUF0) /* \_SB_.PCI0.BUF0 */ } Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities { CreateDWordField (Arg3, 0x00, CDW1) If (Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */) { If (Arg2 >= 0x03) { Name (SUPP, 0x00) Name (CTRL, 0x00) Local0 = 0x03 CreateDWordField (Arg3, 0x04, CDW2) CreateDWordField (Arg3, 0x08, CDW3) SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */ CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ CTRL &= 0x1D If ((SUPP & 0x16) != 0x16) { CTRL &= 0x1E } If (!(CDW1 & 0x01)) { If (CTRL & 0x01) { Local0 &= 0x0E } If (CTRL & 0x04) { Local0 &= 0x0D } If (CTRL & 0x10) {} } If (Arg1 != One) { CDW1 |= 0x08 } If (CDW3 != CTRL) { CDW1 |= 0x10 } CDW3 = CTRL /* \_SB_.PCI0._OSC.CTRL */ } Else { CDW1 |= 0x02 } } Else { CDW1 |= 0x04 } Return (Arg3) } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { Return (Package (0x0D) { Package (0x04) { 0x0003FFFF, 0x00, \_SB.PCI0.LSMB, 0x00 }, Package (0x04) { 0x0003FFFF, 0x01, \_SB.PCI0.LPMU, 0x00 }, Package (0x04) { 0x0004FFFF, 0x00, \_SB.PCI0.LUS0, 0x00 }, Package (0x04) { 0x0004FFFF, 0x01, \_SB.PCI0.LUS2, 0x00 }, Package (0x04) { 0x0006FFFF, 0x00, \_SB.PCI0.Z000, 0x00 }, Package (0x04) { 0x0006FFFF, 0x01, \_SB.PCI0.Z001, 0x00 }, Package (0x04) { 0x0008FFFF, 0x00, \_SB.PCI0.LAZA, 0x00 }, Package (0x04) { 0x0009FFFF, 0x00, \_SB.PCI0.LMAC, 0x00 }, Package (0x04) { 0x000AFFFF, 0x00, \_SB.PCI0.LSI0, 0x00 }, Package (0x04) { 0x0015FFFF, 0x00, \_SB.PCI0.Z00J, 0x00 }, Package (0x04) { 0x0015FFFF, 0x01, \_SB.PCI0.Z00K, 0x00 }, Package (0x04) { 0x0015FFFF, 0x02, \_SB.PCI0.Z00L, 0x00 }, Package (0x04) { 0x0015FFFF, 0x03, \_SB.PCI0.Z00M, 0x00 } }) } Device (PDRC) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (_UID, 0x01) // _UID: Unique ID Name (BUF0, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00000000, // Address Length _Y01) Memory32Fixed (ReadWrite, 0xF0000000, // Address Base 0x04000000, // Address Length ) }) CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y01._BAS, MBAS) // _BAS: Base Address CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y01._LEN, MBLE) // _LEN: Length Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Return (BUF0) /* \_SB_.PCI0.PDRC.BUF0 */ } } Device (LPCB) { Name (_ADR, 0x00030000) // _ADR: Address OperationRegion (CFG2, PCI_Config, 0x08, 0x04) Field (CFG2, ByteAcc, NoLock, Preserve) { MCPV, 8 } OperationRegion (P44, PCI_Config, 0x44, 0x04) Field (P44, AnyAcc, NoLock, Preserve) { MTBA, 32 } OperationRegion (MMTO, PCI_Config, 0x74, 0x04) Field (MMTO, DWordAcc, NoLock, Preserve) { MTSE, 32 } Device (SMC) { Name (_HID, EisaId ("APP0001")) // _HID: Hardware ID Name (_CID, "smc-mcp") // _CID: Compatible ID Name (_STA, 0x0B) // _STA: Status Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0300, // Range Minimum 0x0300, // Range Maximum 0x01, // Alignment 0x20, // Length ) IRQNoFlags () {6} }) } Device (EC) { Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID Name (_UID, 0x00) // _UID: Unique ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0062, // Range Minimum 0x0062, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0066, // Range Minimum 0x0066, // Range Maximum 0x00, // Alignment 0x01, // Length ) }) Name (_GPE, 0x57) // _GPE: General Purpose Events Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x3E, 0x04 }) Name (ECOK, 0x00) OperationRegion (ECOR, EmbeddedControl, 0x00, 0xFF) Field (ECOR, ByteAcc, Lock, Preserve) { ECVS, 8, LSTE, 1, RPWR, 1, CDIN, 1, Offset (0x02), LWAK, 1, ACWK, 1, CDWK, 1, , 1, ADWK, 1, Offset (0x03), G3AD, 1, BLOD, 1, S4WE, 1, Offset (0x04), WBCB, 1, DSLP, 1, Offset (0x05), Offset (0x06), WKRS, 8, Offset (0x10), ECSS, 8, PLIM, 8, ALB0, 8, ALB1, 8, WTLB, 8, WTMB, 8, Offset (0x20), SPTR, 8, SSTS, 8, SADR, 8, SCMD, 8, SBFR, 256, SCNT, 8, SAAD, 8, SAD0, 8, SAD1, 8, SMUX, 8, Offset (0x60), ELSW, 1, EACP, 1, ECDI, 1, ENMI, 1, Offset (0x61), EMHP, 1, Offset (0x62), Offset (0x63), Offset (0x64), SWLO, 1, SWLC, 1, SWAI, 1, SWAR, 1, SWCI, 1, SWCE, 1, SWMI, 1, SWMR, 1, SWPB, 1, SWGP, 1, SWPM, 1, SWWT, 1, SWLB, 1, Offset (0x66), Offset (0x67), Offset (0x68), EWLO, 1, EWLC, 1, EWAI, 1, EWAR, 1, EWCI, 1, EWCE, 1, EWMI, 1, EWMR, 1, EWPB, 1, EWGP, 1, EWPM, 1, ENWT, 1, EWLB, 1, Offset (0x6A), Offset (0x6B), Offset (0x6C), LWLO, 1, LWLC, 1, LWAI, 1, LWAR, 1, LWCI, 1, LWCE, 1, LWMI, 1, LWMR, 1, LWPB, 1, LWGP, 1, LWPM, 1, LWWT, 1, LWLB, 1, Offset (0x6E), Offset (0x6F), Offset (0x70) } Field (ECOR, ByteAcc, Lock, Preserve) { Offset (0x6C), LWE0, 8, LWE1, 8, LWE2, 8, LWE3, 8 } Field (ECOR, ByteAcc, Lock, Preserve) { Offset (0x24), SBDW, 16, Offset (0x46), SADW, 16 } Method (WAKE, 0, NotSerialized) { If (ECOK) { Debug = "EC Wake reason =" Debug = WKRS /* \_SB_.PCI0.LPCB.EC__.WKRS */ Debug = EWAI /* \_SB_.PCI0.LPCB.EC__.EWAI */ Debug = EWAR /* \_SB_.PCI0.LPCB.EC__.EWAR */ Return (WKRS) /* \_SB_.PCI0.LPCB.EC__.WKRS */ } Else { Return (0x00) } } Device (SMB0) { Name (_HID, "ACPI0001" /* SMBus 1.0 Host Controller */) // _HID: Hardware ID Name (_EC, 0x2010) // _EC_: Embedded Controller Mutex (SMTX, 0x00) Method (_STA, 0, NotSerialized) // _STA: Status { If (OSDW ()) { Return (0x0F) } Else { Return (0x00) } } Device (SBS0) { Name (_HID, "ACPI0002" /* Smart Battery Subsystem */) // _HID: Hardware ID Name (_SBS, 0x01) // _SBS: Smart Battery Subsystem } Method (SBPC, 1, NotSerialized) { Local0 = Arg0 While (Local0) { If (SPTR == 0x00) { Return ((SSTS & 0x1F)) } Sleep (0x01) Local0-- } Return (0x18) } Method (SBRW, 3, NotSerialized) { Local0 = One If (!Acquire (\_SB.PCI0.LPCB.EC.SMB0.SMTX, 0xFFFF)) { If (SPTR == 0x00) { SADR = (Arg0 << 0x01) SCMD = Arg1 SPTR = 0x09 Local0 = SBPC (0x03E8) If (!Local0) { Arg2 = SBDW /* \_SB_.PCI0.LPCB.EC__.SBDW */ } } Release (\_SB.PCI0.LPCB.EC.SMB0.SMTX) } Return (Local0) } Method (SBRB, 3, NotSerialized) { Local0 = One Local1 = Buffer (0x01) { 0x00 /* . */ } If (!Acquire (\_SB.PCI0.LPCB.EC.SMB0.SMTX, 0xFFFF)) { If (SPTR == 0x00) { SADR = (Arg0 << 0x01) SCMD = Arg1 SPTR = 0x0B Local0 = SBPC (0x03E8) If (!Local0) { Arg2 = SBFR /* \_SB_.PCI0.LPCB.EC__.SBFR */ } } Release (\_SB.PCI0.LPCB.EC.SMB0.SMTX) } Return (Local0) } } Method (_Q10, 0, NotSerialized) // _Qxx: EC Query { If (OSDW ()) { Notify (\_SB.PCI0.LPCB.EC.SMB0, 0x80) // Status Change } ElseIf (SSTS & 0x40) { If (!Acquire (\_SB.PCI0.LPCB.EC.SMB0.SMTX, 0xFFFF)) { Local0 = (SAAD >> 0x01) If (Local0 == 0x0A) { \_SB.BAT0.BNOT (SADW) } SSTS = 0x00 Release (\_SB.PCI0.LPCB.EC.SMB0.SMTX) } } } Method (_Q20, 0, NotSerialized) // _Qxx: EC Query { LIDS = ELSW /* \_SB_.PCI0.LPCB.EC__.ELSW */ Notify (\_SB.LID0, 0x80) // Status Change } Method (_Q21, 0, NotSerialized) // _Qxx: EC Query { If (EACP) { PWRS = 0x01 } Else { PWRS = 0x00 } Notify (\_SB.ADP1, 0x80) // Status Change PNOT () } Method (_Q5A, 0, NotSerialized) // _Qxx: EC Query { Notify (\_SB.SLPB, 0x80) // Status Change } Method (_Q80, 0, NotSerialized) // _Qxx: EC Query { PNOT () If (CPLT >= 0x02) { Notify (\_PR.CPU0, 0x82) // Throttling Capability Change Notify (\_PR.CPU1, 0x82) // Throttling Capability Change } } Method (_QCD, 0, NotSerialized) // _Qxx: EC Query { If (OSDW ()) { If (ECDI) { Notify (\_SB.PCI0.SATA.PRT1, 0x81) // Information Change } Else { Notify (\_SB.PCI0.SATA.PRT1, 0x82) // Device-Specific Change } } } Method (_REG, 2, NotSerialized) // _REG: Region Availability { If ((Arg0 == 0x03) || (OSYS >= 0x07D6)) { ECOK = Arg1 If (Arg1 == 0x01) { ECSS = 0x00 LIDS = ELSW /* \_SB_.PCI0.LPCB.EC__.ELSW */ Notify (\_SB.LID0, 0x80) // Status Change PWRS = EACP /* \_SB_.PCI0.LPCB.EC__.EACP */ Notify (\_SB.ADP1, 0x80) // Status Change } } } } Scope (\_SB) { Device (BAT0) { Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID Name (_UID, 0x00) // _UID: Unique ID Name (_PCL, Package (0x01) // _PCL: Power Consumer List { \_SB }) Name (BSSW, 0xFFFF) Name (PBIF, Package (0x0D) { 0x00, 0xFFFFFFFF, 0xFFFFFFFF, 0x01, 0xFFFFFFFF, 0xFA, 0x64, 0x0A, 0x0A, " ", " ", " ", " " }) Name (PBST, Package (0x04) { 0x00, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }) Method (_STA, 0, NotSerialized) // _STA: Status { If (OSDW ()) { Return (0x00) } If (\_SB.PCI0.LPCB.EC.ECOK) { UBSS () If (BSSW & 0x01) { Return (0x1F) } Else { Return (0x0F) } } Else { Return (0x0F) } } Method (_BST, 0, NotSerialized) // _BST: Battery Status { If (BSSW & 0x01) { UBST () } Else { PBST [0x00] = 0x00 PBST [0x01] = 0xFFFFFFFF PBST [0x02] = 0xFFFFFFFF } Return (PBST) /* \_SB_.BAT0.PBST */ } Method (_BIF, 0, NotSerialized) // _BIF: Battery Information { If (BSSW & 0x01) { UBIF () } Return (PBIF) /* \_SB_.BAT0.PBIF */ } Method (BNOT, 1, NotSerialized) { Local0 = BSSW /* \_SB_.BAT0.BSSW */ BSSW = Arg0 Notify (\_SB.BAT0, 0x80) // Status Change If ((Local0 ^ Arg0) & 0x01) { Notify (\_SB.BAT0, 0x81) // Information Change } } Method (UBSS, 0, NotSerialized) { \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0A, 0x01, RefOf (BSSW)) } Method (UBIF, 0, NotSerialized) { \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x18, RefOf (Local0)) PBIF [0x01] = (Local0 * 0x0A) \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x10, RefOf (Local0)) PBIF [0x02] = (Local0 * 0x0A) \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x19, RefOf (Local0)) PBIF [0x04] = Local0 \_SB.PCI0.LPCB.EC.SMB0.SBRB (0x0B, 0x21, RefOf (Local0)) PBIF [0x09] = Local0 PBIF [0x0A] = Buffer (0x01) { 0x00 /* . */ } \_SB.PCI0.LPCB.EC.SMB0.SBRB (0x0B, 0x22, RefOf (Local0)) PBIF [0x0B] = Local0 \_SB.PCI0.LPCB.EC.SMB0.SBRB (0x0B, 0x20, RefOf (Local0)) PBIF [0x0C] = Local0 } Method (UBST, 0, NotSerialized) { \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x09, RefOf (Local2)) PBST [0x03] = Local2 \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x0A, RefOf (Local0)) If (Local0 & 0x8000) { Local0 = ~Local0 Local0 = (Local0++ & 0xFFFF) } Local0 *= Local2 PBST [0x01] = (Local0 / 0x03E8) \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x0F, RefOf (Local0)) PBST [0x02] = (Local0 * 0x0A) Local1 = 0x00 If (PWRS) { \_SB.PCI0.LPCB.EC.SMB0.SBRW (0x0B, 0x16, RefOf (Local0)) If (!(Local0 & 0x40)) { Local1 = 0x02 } } Else { Local1 = 0x01 } PBST [0x00] = Local1 } } } 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 0x09, // Length ) IO (Decode16, 0x000A, // Range Minimum 0x000A, // Range Maximum 0x01, // Alignment 0x06, // Length ) IO (Decode16, 0x0081, // Range Minimum 0x0081, // Range Maximum 0x01, // Alignment 0x03, // Length ) IO (Decode16, 0x0087, // Range Minimum 0x0087, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0089, // Range Minimum 0x0089, // Range Maximum 0x01, // Alignment 0x03, // Length ) IO (Decode16, 0x008F, // Range Minimum 0x008F, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x00C0, // Range Minimum 0x00C0, // Range Maximum 0x01, // Alignment 0x12, // Length ) IO (Decode16, 0x00D4, // Range Minimum 0x00D4, // Range Maximum 0x01, // Alignment 0x0C, // Length ) DMA (Compatibility, NotBusMaster, Transfer8_16, ) {4} }) } Device (HPET) { Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID Name (_CID, EisaId ("PNP0C01") /* System Board */) // _CID: Compatible ID Name (BUF0, ResourceTemplate () { IRQNoFlags () {0} IRQNoFlags () {8} Memory32Fixed (ReadOnly, 0xFED00000, // Address Base 0x00000400, // Address Length _Y02) }) Name (BUF1, ResourceTemplate () { }) Method (_STA, 0, NotSerialized) // _STA: Status { If (OSYS >= 0x07D1) { If (\_SB.PCI0.LPCB.MTSE & 0x04) { Return (0x0F) } } ElseIf (\_SB.PCI0.LPCB.MTSE & 0x04) { Return (0x0B) } Return (0x00) } Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { If (\_SB.PCI0.LPCB.MTSE & 0x04) { CreateDWordField (BUF0, \_SB.PCI0.LPCB.HPET._Y02._BAS, HPT0) // _BAS: Base Address HPT0 = \_SB.PCI0.LPCB.MTBA Return (BUF0) /* \_SB_.PCI0.LPCB.HPET.BUF0 */ } Return (BUF1) /* \_SB_.PCI0.LPCB.HPET.BUF1 */ } } Device (IPIC) { 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 0x01, // Length ) IRQNoFlags () {2} }) } Device (MATH) { 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 0x02, // Length ) IRQNoFlags () {13} }) } Device (LDRC) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Name (BUF0, ResourceTemplate () { IO (Decode16, 0x0400, // Range Minimum 0x0400, // Range Maximum 0x01, // Alignment 0x80, // Length _Y03) IO (Decode16, 0x0400, // Range Minimum 0x0400, // Range Maximum 0x01, // Alignment 0x80, // Length _Y04) IO (Decode16, 0x0500, // Range Minimum 0x0500, // Range Maximum 0x01, // Alignment 0x80, // Length _Y05) IO (Decode16, 0x0500, // Range Minimum 0x0500, // Range Maximum 0x01, // Alignment 0x80, // Length _Y06) IO (Decode16, 0x0800, // Range Minimum 0x0800, // Range Maximum 0x01, // Alignment 0x80, // Length _Y07) IO (Decode16, 0x0800, // Range Minimum 0x0800, // Range Maximum 0x01, // Alignment 0x80, // Length _Y08) IO (Decode16, 0x0010, // Range Minimum 0x0010, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x0022, // Range Minimum 0x0022, // Range Maximum 0x01, // Alignment 0x1E, // Length ) IO (Decode16, 0x0044, // Range Minimum 0x0044, // Range Maximum 0x01, // Alignment 0x1C, // 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 0x09, // Length ) IO (Decode16, 0x0072, // Range Minimum 0x0072, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0074, // Range Minimum 0x0074, // Range Maximum 0x01, // Alignment 0x0C, // Length ) IO (Decode16, 0x0091, // Range Minimum 0x0091, // Range Maximum 0x01, // Alignment 0x03, // Length ) IO (Decode16, 0x0097, // Range Minimum 0x0097, // Range Maximum 0x01, // Alignment 0x09, // Length ) IO (Decode16, 0x00A2, // Range Minimum 0x00A2, // Range Maximum 0x01, // Alignment 0x1E, // Length ) IO (Decode16, 0x00E0, // Range Minimum 0x00E0, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x04D0, // Range Minimum 0x04D0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0080, // Range Minimum 0x0080, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0295, // Range Minimum 0x0295, // Range Maximum 0x01, // Alignment 0x02, // Length ) }) CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y03._MIN, I1MN) // _MIN: Minimum Base Address CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y03._MAX, I1MX) // _MAX: Maximum Base Address CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y04._MIN, I2MN) // _MIN: Minimum Base Address CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y04._MAX, I2MX) // _MAX: Maximum Base Address CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y05._MIN, I3MN) // _MIN: Minimum Base Address CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y05._MAX, I3MX) // _MAX: Maximum Base Address CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y06._MIN, I4MN) // _MIN: Minimum Base Address CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y06._MAX, I4MX) // _MAX: Maximum Base Address CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y07._MIN, I5MN) // _MIN: Minimum Base Address CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y07._MAX, I5MX) // _MAX: Maximum Base Address CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y08._MIN, I6MN) // _MIN: Minimum Base Address CreateWordField (BUF0, \_SB.PCI0.LPCB.LDRC._Y08._MAX, I6MX) // _MAX: Maximum Base Address Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { I1MN = (\_SB.PCI0.SBUS.PMBR & 0xFFFC) I1MX = I1MN /* \_SB_.PCI0.LPCB.LDRC.I1MN */ Local0 = (I1MN + 0x80) I2MN = Local0 I2MX = Local0 I3MN = (\_SB.PCI0.SBUS.NVSB & 0xFFFC) I3MX = I3MN /* \_SB_.PCI0.LPCB.LDRC.I3MN */ Local0 = (I3MN + 0x80) I4MN = Local0 I4MX = Local0 I5MN = (\_SB.PCI0.SBUS.ANLG & 0xFFFC) I5MX = I5MN /* \_SB_.PCI0.LPCB.LDRC.I5MN */ Local0 = (I5MN + 0x80) I6MN = Local0 I6MX = Local0 Return (BUF0) /* \_SB_.PCI0.LPCB.LDRC.BUF0 */ } } Device (RTC) { Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x08, // Length ) }) } Device (TIMR) { Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x01, // Alignment 0x04, // Length ) }) } } Device (IMAP) { Name (_ADR, 0x00030001) // _ADR: Address Scope (\) { OperationRegion (\_SB.PCI0.IMAP.PIRQ, PCI_Config, 0x60, 0x3C) Field (\_SB.PCI0.IMAP.PIRQ, AnyAcc, NoLock, Preserve) { PSI0, 8, PSI1, 8, IR01, 8, IR02, 8, IMAC, 8, IMA1, 8, IR03, 8, IR04, 8, IUS0, 8, IUS2, 8, Z018, 8, Z019, 8, ISCI, 8, ITCO, 8, ISMB, 8, INTS, 8, IAZA, 8, Z01A, 8, IPID, 8, INTU, 8, INTW, 8, INTX, 8, INTY, 8, INTZ, 8, DLIA, 8, DLIB, 8, DLIC, 8, DLID, 8, Z01B, 8, Z01C, 8, Z01D, 8, Z01E, 8, Z01F, 8, Z01G, 8, Z01H, 8, Z01I, 8, Z01J, 8, Z01K, 8, Z01L, 8, Z01M, 8, Z01N, 8, Z01O, 8, Z01P, 8, Z01Q, 8, Z01R, 8, Z01S, 8, Z01T, 8, Z01U, 8, Z01V, 8, Z01W, 8, Z01X, 8, Z01Y, 8 } } Scope (\_SB.PCI0) { Name (BUFA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {5,7,10,11,14,15} }) Name (BUFB, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y09) {} }) CreateWordField (BUFB, \_SB.PCI0._Y09._INT, IRQV) // _INT: Interrupts Method (CRS, 1, Serialized) { If (Arg0) { IRQV = (0x01 << Arg0) } Else { IRQV = 0x00 } Return (BUFB) /* \_SB_.PCI0.BUFB */ } Method (SRS, 1, Serialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- Return (Local0) } Name (BUFI, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 0x17, "", ) { 0x00000010, 0x00000011, 0x00000012, 0x00000013, 0x00000014, 0x00000015, 0x00000016, 0x00000017, } }) Name (BUFF, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 0x0F, "", ) { 0x00000005, 0x00000007, 0x0000000A, 0x0000000B, 0x0000000E, 0x0000000F, } }) Method (CRSI, 1, Serialized) { Name (IRZ5, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 0x05, "", _Y0A) { 0x00000005, } }) CreateWordField (IRZ5, \_SB.PCI0.CRSI._Y0A._INT, INZ5) // _INT: Interrupts Local0 = Arg0 If (Arg0 == 0x03) { Local0 = 0x10 } If (Arg0 == 0x04) { Local0 = 0x11 } If (Arg0 == 0x06) { Local0 = 0x12 } If (Arg0 == 0x0C) { Local0 = 0x13 } If (Arg0 == 0x08) { Local0 = 0x14 } If (Arg0 == 0x0D) { Local0 = 0x15 } If (Arg0 == 0x02) { Local0 = 0x16 } If (Arg0 == 0x01) { Local0 = 0x17 } INZ5 = Local0 Return (IRZ5) /* \_SB_.PCI0.CRSI.IRZ5 */ } Method (SRSI, 1, Serialized) { CreateWordField (Arg0, 0x05, IRZ6) Local0 = IRZ6 /* \_SB_.PCI0.SRSI.IRZ6 */ If (IRZ6 == 0x10) { Local0 = 0x03 } If (IRZ6 == 0x11) { Local0 = 0x04 } If (IRZ6 == 0x12) { Local0 = 0x06 } If (IRZ6 == 0x13) { Local0 = 0x0C } If (IRZ6 == 0x14) { Local0 = 0x08 } If (IRZ6 == 0x15) { Local0 = 0x0D } If (IRZ6 == 0x16) { Local0 = 0x02 } If (IRZ6 == 0x17) { Local0 = 0x01 } Return (Local0) } Device (LNK1) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x01) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (INTW) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { INTW = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (INTW)) } Else { Return (CRSI (INTW)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { INTW = SRS (Arg0) } Else { INTW = SRSI (Arg0) } } } Device (LNK2) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (INTX) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { INTX = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (INTX)) } Else { Return (CRSI (INTX)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { INTX = SRS (Arg0) } Else { INTX = SRSI (Arg0) } } } Device (LNK3) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x03) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (INTY) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { INTY = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (INTY)) } Else { Return (CRSI (INTY)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { INTY = SRS (Arg0) } Else { INTY = SRSI (Arg0) } } } Device (LNK4) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x04) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (INTZ) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { INTZ = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (INTZ)) } Else { Return (CRSI (INTZ)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { INTZ = SRS (Arg0) } Else { INTZ = SRSI (Arg0) } } } Device (Z00J) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x15) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (Z01R) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { Z01R = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (Z01R)) } Else { Return (CRSI (Z01R)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { Z01R = SRS (Arg0) } Else { Z01R = SRSI (Arg0) } } } Device (Z00K) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x16) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (Z01S) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { Z01S = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (Z01S)) } Else { Return (CRSI (Z01S)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { Z01S = SRS (Arg0) } Else { Z01S = SRSI (Arg0) } } } Device (Z00L) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x17) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (Z01T) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { Z01T = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (Z01T)) } Else { Return (CRSI (Z01T)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { Z01T = SRS (Arg0) } Else { Z01T = SRSI (Arg0) } } } Device (Z00M) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x18) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (Z01U) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { Z01U = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (Z01U)) } Else { Return (CRSI (Z01U)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { Z01U = SRS (Arg0) } Else { Z01U = SRSI (Arg0) } } } Device (LSMB) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x25) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (ISMB) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { ISMB = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (ISMB)) } Else { Return (CRSI (ISMB)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { ISMB = SRS (Arg0) } Else { ISMB = SRSI (Arg0) } } } Device (LUS0) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x26) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (IUS0) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { IUS0 = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (IUS0)) } Else { Return (CRSI (IUS0)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { IUS0 = SRS (Arg0) } Else { IUS0 = SRSI (Arg0) } } } Device (LUS2) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x27) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (IUS2) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { IUS2 = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (IUS2)) } Else { Return (CRSI (IUS2)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { IUS2 = SRS (Arg0) } Else { IUS2 = SRSI (Arg0) } } } Device (LMAC) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x28) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (IMAC) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { IMAC = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (IMAC)) } Else { Return (CRSI (IMAC)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { IMAC = SRS (Arg0) } Else { IMAC = SRSI (Arg0) } } } Device (LAZA) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x29) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (IAZA) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { IAZA = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (IAZA)) } Else { Return (CRSI (IAZA)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { IAZA = SRS (Arg0) } Else { IAZA = SRSI (Arg0) } } } Device (LGPU) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x2A) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (Z01A) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { Z01A = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (Z01A)) } Else { Return (CRSI (Z01A)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { Z01A = SRS (Arg0) } Else { Z01A = SRSI (Arg0) } } } Device (LPID) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x2B) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (IPID) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { IPID = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (IPID)) } Else { Return (CRSI (IPID)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { IPID = SRS (Arg0) } Else { IPID = SRSI (Arg0) } } } Device (LSI0) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x2C) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PSI0) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { PSI0 = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (PSI0)) } Else { Return (CRSI (PSI0)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { PSI0 = SRS (Arg0) } Else { PSI0 = SRSI (Arg0) } } } Device (Z000) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x2E) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (Z018) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { Z018 = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (Z018)) } Else { Return (CRSI (Z018)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { Z018 = SRS (Arg0) } Else { Z018 = SRSI (Arg0) } } } Device (Z001) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x2F) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (Z019) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { Z019 = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (Z019)) } Else { Return (CRSI (Z019)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { Z019 = SRS (Arg0) } Else { Z019 = SRSI (Arg0) } } } Device (LPMU) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x30) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (INTS) { Return (0x0B) } Else { Return (0x09) } } Method (_DIS, 0, Serialized) // _DIS: Disable Device { INTS = 0x00 } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { If (!\GPIC) { Return (BUFA) /* \_SB_.PCI0.BUFA */ } Else { Return (BUFI) /* \_SB_.PCI0.BUFI */ } } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (!\GPIC) { Return (CRS (INTS)) } Else { Return (CRSI (INTS)) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { If (!\GPIC) { INTS = SRS (Arg0) } Else { INTS = SRSI (Arg0) } } } } } Device (SBUS) { Name (_ADR, 0x00030002) // _ADR: Address OperationRegion (SMBE, PCI_Config, 0x04, 0x02) Field (SMBE, AnyAcc, NoLock, Preserve) { IOSE, 1, MMSE, 1 } OperationRegion (SBA0, PCI_Config, 0x20, 0x04) Field (SBA0, AnyAcc, NoLock, Preserve) { SB20, 16 } OperationRegion (SBA1, PCI_Config, 0x24, 0x04) Field (SBA1, AnyAcc, NoLock, Preserve) { SB24, 16 } OperationRegion (SMBP, PCI_Config, 0x40, 0xC0) Field (SMBP, DWordAcc, NoLock, Preserve) { , 2, I2CE, 1 } OperationRegion (SMCF, PCI_Config, 0x48, 0x04) Field (SMCF, AnyAcc, NoLock, Preserve) { SMPM, 4 } OperationRegion (P60, PCI_Config, 0x60, 0x02) Field (P60, AnyAcc, NoLock, Preserve) { PMBR, 16 } OperationRegion (P64, PCI_Config, 0x64, 0x02) Field (P64, AnyAcc, NoLock, Preserve) { NVSB, 16 } OperationRegion (P68, PCI_Config, 0x68, 0x02) Field (P68, AnyAcc, NoLock, Preserve) { ANLG, 16 } OperationRegion (SM6C, PCI_Config, 0x6C, 0x04) Field (SM6C, AnyAcc, NoLock, Preserve) { WDTA, 32 } OperationRegion (SM74, PCI_Config, 0x74, 0x04) Field (SM74, AnyAcc, NoLock, Preserve) { SMUB, 32 } OperationRegion (SM80, PCI_Config, 0x80, 0x04) Field (SM80, AnyAcc, NoLock, Preserve) { NVAM, 32 } OperationRegion (SME0, PCI_Config, 0xE0, 0x04) Field (SME0, AnyAcc, NoLock, Preserve) { SE0R, 23, RSUS, 1 } OperationRegion (SME4, PCI_Config, 0xE4, 0x04) Field (SME4, AnyAcc, NoLock, Preserve) { SE4R, 4, RP1D, 1, RP2D, 1, RP3D, 1, RP4D, 1, RP5D, 1, RP6D, 1, RP7D, 1, , 16, RMEN, 1 } OperationRegion (SME8, PCI_Config, 0xE8, 0x04) Field (SME8, AnyAcc, NoLock, Preserve) { SE8R, 13, GPUD, 1 } OperationRegion (SMBI, SystemIO, 0x2240, 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 (ENAB, 0, NotSerialized) { IOSE = 0x01 } Method (SWRB, 3, Serialized) { If (STRT ()) { Return (0x00) } I2CE = 0x00 HSTS = 0xBF TXSA = Arg0 HCOM = Arg1 DAT0 = Arg2 HCON = 0x48 If (COMP ()) { HSTS |= 0xFF Return (0x01) } Return (0x00) } Method (SRDB, 2, Serialized) { If (STRT ()) { Return (0xFFFF) } I2CE = 0x00 HSTS = 0xBF TXSA = (Arg0 | 0x01) HCOM = Arg1 HCON = 0x48 If (COMP ()) { HSTS |= 0xFF Return (DAT0) /* \_SB_.PCI0.SBUS.DAT0 */ } Return (0xFFFF) } Method (STRT, 0, Serialized) { Local0 = 0xC8 While (Local0) { If (HSTS & 0x40) { Local0-- Sleep (0x01) If (Local0 == 0x00) { Return (0x01) } } Else { Local0 = 0x00 } } Local0 = 0x0FA0 While (Local0) { If (HSTS & 0x01) { Local0-- Stall (0x32) If (Local0 == 0x00) { KILL () } } Else { Return (0x00) } } Return (0x01) } Method (COMP, 0, Serialized) { Local0 = 0x0FA0 While (Local0) { If (HSTS & 0x02) { Return (0x01) } Else { Local0-- Stall (0x32) If (Local0 == 0x00) { KILL () } } } Return (0x00) } Method (KILL, 0, Serialized) { HCON |= 0x02 HSTS |= 0xFF } Device (BUS0) { Name (_CID, "smbus") // _CID: Compatible ID Name (_ADR, 0x00) // _ADR: Address Device (MKY0) { Name (_ADR, 0x00) // _ADR: Address Name (_CID, "mikey") // _CID: Compatible ID Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Local0 = Package (0x06) { "refnum", 0x00, "address", 0x39, "device-id", 0x0CD2 } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Method (H1EN, 1, Serialized) { If (Arg0 <= 0x01) { GP07 = Arg0 } } Method (H1IL, 0, Serialized) { Return (GP55) /* \GP55 */ } Method (H1IP, 1, Serialized) { If (Arg0 <= 0x01) { Local0 = GI55 /* \GI55 */ Local0 &= 0xFC GI55 = (Arg0 | Local0) } } Name (H1IN, 0x56) Scope (\_GPE) { Method (_L56, 0, NotSerialized) // _Lxx: Level-Triggered GPE { If (OSDW ()) { Notify (\_SB.PCI0.SBUS.BUS0.MKY0, 0x80) // Status Change } Else { Notify (\_SB.PWRB, 0x02) // Device Wake } } } Method (P1IL, 0, Serialized) { Local0 = ((GI38 & 0x20) >> 0x05) Return (Local0) } Method (P1IP, 1, Serialized) { If (Arg0 <= 0x01) { Local0 = GI38 /* \GI38 */ Local0 &= 0xFC GI38 = (Arg0 | Local0) } } Name (P1IN, 0x45) Scope (\_GPE) { Method (_L45, 0, NotSerialized) // _Lxx: Level-Triggered GPE { GI38 ^= 0x01 If (OSDW ()) { Notify (\_SB.PCI0.SBUS.BUS0.MKY0, 0x81) // Information Change } Else { Notify (\_SB.PWRB, 0x02) // Device Wake } } } } } Device (BUS1) { Name (_CID, "smbus") // _CID: Compatible ID Name (_ADR, 0x01) // _ADR: Address } } Device (NVPM) { Name (_ADR, 0x00030004) // _ADR: Address OperationRegion (NCFG, PCI_Config, 0x10, 0x04) Field (NCFG, AnyAcc, NoLock, Preserve) { BAR0, 32 } OperationRegion (B1R0, SystemMemory, BAR0, 0x1000) Field (B1R0, AnyAcc, NoLock, Preserve) { Offset (0x204), MUTE, 32 } Method (MTEN, 1, Serialized) { If (MTVL == 0x00) { MTVL = MUTE /* \_SB_.PCI0.NVPM.MUTE */ } If (Arg0 == 0x01) { MUTE = MTVL /* \MTVL */ } Else { MUTE = (MTVL & 0xFFFFFFFE) } } } Device (OHC1) { Name (_ADR, 0x00040000) // _ADR: Address OperationRegion (PMCR, PCI_Config, 0x48, 0x04) Field (PMCR, AnyAcc, NoLock, Preserve) { PMDX, 2 } OperationRegion (FCFG, PCI_Config, 0xF8, 0x04) Field (FCFG, AnyAcc, NoLock, Preserve) { , 6, MCOH, 2 } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { If (\_SB.PCI0.COHW ()) { PMDX = 0x00 Sleep (0x05) MCOH = 0x01 } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Device (HUB1) { Name (_ADR, 0x00) // _ADR: Address Device (PRT1) { Name (_ADR, 0x01) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x00, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "LEFT", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x1, PLD_EjectRequired = 0x1, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0x00, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } Device (PRT3) { Name (_ADR, 0x03) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0x00, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } Device (PRT4) { Name (_ADR, 0x04) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x00, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "LEFT", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x1, PLD_EjectRequired = 0x1, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT5) { Name (_ADR, 0x05) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0x00, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } Device (PRT6) { Name (_ADR, 0x06) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } } Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x0D, 0x03 }) Scope (\_GPE) { Method (_L0D, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.OHC1, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { Return (0x03) } Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State { Return (0x03) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Local0 = Package (0x02) { "AAPL,device-internal", 0x40 } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (EHC1) { Name (_ADR, 0x00040001) // _ADR: Address OperationRegion (PMCR, PCI_Config, 0x84, 0x04) Field (PMCR, AnyAcc, NoLock, Preserve) { PMDX, 2 } OperationRegion (FCFG, PCI_Config, 0xF8, 0x04) Field (FCFG, AnyAcc, NoLock, Preserve) { , 6, MCOH, 2 } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { If (\_SB.PCI0.COHW ()) { PMDX = 0x00 Sleep (0x05) MCOH = 0x01 } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Device (HUB1) { Name (_ADR, 0x00) // _ADR: Address Device (PRT1) { Name (_ADR, 0x01) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x00, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "LEFT", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x1, PLD_EjectRequired = 0x1, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0x00, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } Device (PRT3) { Name (_ADR, 0x03) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } Device (PRT4) { Name (_ADR, 0x04) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0x00, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "LEFT", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x1, PLD_EjectRequired = 0x1, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT5) { Name (_ADR, 0x05) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } Device (PRT6) { Name (_ADR, 0x06) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } } Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x05, 0x03 }) Scope (\_GPE) { Method (_L05, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.EHC1, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { Return (0x03) } Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State { Return (0x03) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Local0 = Package (0x0C) { "AAPL,current-available", 0x05DC, "AAPL,current-extra", 0x04B0, "AAPL,current-in-sleep", 0x07D0, "AAPL,current-extra-in-sleep", 0x03E8, "AAPL,max-port-current-in-sleep", 0x05DC, "AAPL,device-internal", 0x40 } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (OHC2) { Name (_ADR, 0x00060000) // _ADR: Address OperationRegion (PMCR, PCI_Config, 0x48, 0x04) Field (PMCR, AnyAcc, NoLock, Preserve) { PMDX, 2 } OperationRegion (FCFG, PCI_Config, 0xF8, 0x04) Field (FCFG, AnyAcc, NoLock, Preserve) { , 6, MCOH, 2 } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { If (\_SB.PCI0.COHW ()) { PMDX = 0x00 Sleep (0x05) MCOH = 0x01 } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Device (HUB1) { Name (_ADR, 0x00) // _ADR: Address Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x00, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "LEFT", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x1, PLD_EjectRequired = 0x1, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT3) { Name (_ADR, 0x03) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } Device (PRT4) { Name (_ADR, 0x04) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x00, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "LEFT", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x1, PLD_EjectRequired = 0x1, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT5) { Name (_ADR, 0x05) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } Device (PRT6) { Name (_ADR, 0x06) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } } Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x18, 0x03 }) Scope (\_GPE) { Method (_L18, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.OHC2, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { Return (0x03) } Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State { Return (0x03) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Local0 = Package (0x02) { "AAPL,device-internal", 0x42 } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (EHC2) { Name (_ADR, 0x00060001) // _ADR: Address OperationRegion (PMCR, PCI_Config, 0x84, 0x04) Field (PMCR, AnyAcc, NoLock, Preserve) { PMDX, 2 } OperationRegion (FCFG, PCI_Config, 0xF8, 0x04) Field (FCFG, AnyAcc, NoLock, Preserve) { , 6, MCOH, 2 } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { If (\_SB.PCI0.COHW ()) { PMDX = 0x00 Sleep (0x05) MCOH = 0x01 } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Device (HUB1) { Name (_ADR, 0x00) // _ADR: Address Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x00, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "LEFT", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x1, PLD_EjectRequired = 0x1, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT3) { Name (_ADR, 0x03) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0x00, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } Device (PRT4) { Name (_ADR, 0x04) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0x00, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "LEFT", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x1, PLD_EjectRequired = 0x1, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT5) { Name (_ADR, 0x05) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0x00, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } Device (PRT6) { Name (_ADR, 0x06) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0x00, 0xFF, 0x00, 0x00 }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "UNKNOWN", PLD_VerticalPosition = "UPPER", PLD_HorizontalPosition = "LEFT", PLD_Shape = "UNKNOWN", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (0x00) } } } Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x17, 0x03 }) Scope (\_GPE) { Method (_L17, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.EHC2, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { Return (0x03) } Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State { Return (0x03) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Local0 = Package (0x0C) { "AAPL,current-available", 0x05DC, "AAPL,current-extra", 0x04B0, "AAPL,current-in-sleep", 0x07D0, "AAPL,current-extra-in-sleep", 0x03E8, "AAPL,max-port-current-in-sleep", 0x05DC, "AAPL,device-internal", 0x42 } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (HDEF) { Name (_ADR, 0x00080000) // _ADR: Address OperationRegion (A1E0, PCI_Config, 0x00, 0x04) Field (A1E0, ByteAcc, NoLock, Preserve) { VID0, 16, DID0, 16 } OperationRegion (A1E2, PCI_Config, 0xF4, 0x04) Field (A1E2, ByteAcc, NoLock, Preserve) { , 20, HDCD, 1 } OperationRegion (PMCR, PCI_Config, 0x48, 0x04) Field (PMCR, AnyAcc, NoLock, Preserve) { PMDX, 2 } OperationRegion (FCFG, PCI_Config, 0xF8, 0x04) Field (FCFG, AnyAcc, NoLock, Preserve) { Offset (0x02), MCOH, 2 } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { If (\_SB.PCI0.COHW ()) { PMDX = 0x00 Sleep (0x05) MCOH = 0x01 } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")) { If ((VID0 & 0xFFFF) != 0xFFFF) { If ((HDCD & 0x01) == 0x01) { Local0 = Package (0x02) { "hda-gfx", Buffer (0x0A) { "onboard-1" } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } } Return (0x80000002) } } Device (SATA) { Name (_ADR, 0x000A0000) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Local0 = Package (0x02) { "sata-elpg", Buffer (0x05) { "True" } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } OperationRegion (PMCR, PCI_Config, 0x48, 0x04) Field (PMCR, AnyAcc, NoLock, Preserve) { PMDX, 2 } OperationRegion (FCFG, PCI_Config, 0xF8, 0x04) Field (FCFG, AnyAcc, NoLock, Preserve) { , 6, MCOH, 2 } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { If (\_SB.PCI0.COHW ()) { PMDX = 0x00 Sleep (0x05) MCOH = 0x01 } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Name (PRIT, 0x00) Name (SECT, 0x00) Name (PSIT, 0x00) Name (SSIT, 0x00) Name (SYNC, 0x00) Name (SDT0, 0x00) Name (SDT1, 0x00) Name (STD2, 0x00) Name (SDT3, 0x00) Name (ICR0, 0x00) Name (ICR1, 0x00) Name (ICR2, 0x00) Name (ICR3, 0x00) Name (ICR4, 0x00) Name (ICR5, 0x00) Name (MAPV, 0x00) } Device (IXVE) { Name (_ADR, 0x00170000) // _ADR: Address OperationRegion (A1E0, PCI_Config, 0x19, 0x01) Field (A1E0, ByteAcc, NoLock, Preserve) { SECB, 8 } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (SECB) /* \_SB_.PCI0.IXVE.SECB */ } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Device (IGPU) { Name (_ADR, 0x00) // _ADR: Address Name (BRTN, Package (0x12) { 0x50, 0x32, 0x00, 0x07, 0x0D, 0x14, 0x1B, 0x21, 0x28, 0x2F, 0x35, 0x3C, 0x43, 0x49, 0x50, 0x57, 0x5D, 0x64 }) Device (LCD1) { Name (_ADR, 0xA420) // _ADR: Address Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels { Return (BRTN) /* \_SB_.PCI0.IXVE.IGPU.BRTN */ } } Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices { Return (Package (0x01) { 0x8000A420 }) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { Return (Package (0x01) { Package (0x04) { 0xFFFF, 0x00, \_SB.PCI0.LGPU, 0x00 } }) } } Scope (\_SB.PCI0.IXVE.IGPU) { OperationRegion (A1E0, PCI_Config, 0x00, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { VID, 16, DID, 16 } Method (CMPB, 2, NotSerialized) { Local1 = SizeOf (Arg0) If (Local1 != SizeOf (Arg1)) { Return (0x00) } Local0 = 0x00 While (Local0 < Local1) { If (DerefOf (Arg0 [Local0]) != DerefOf (Arg1 [Local0] )) { Return (0x00) } Local0++ } Return (0x01) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Name (GUI1, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")) If (CMPB (Arg0, GUI1) == 0x01) { If ((DID & 0xFFFF) != 0xFFFF) { Local0 = Package (0x02) { "hda-gfx", Buffer (0x0A) { "onboard-1" } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Return (0x80000002) } Debug = "----- IGPU _DSM --------" If (CMPB (Arg0, ToUUID ("d4a50b75-65c7-46f7-bfb7-41514cea0244"))) { Return (NBCI (Arg0, Arg1, Arg2, Arg3)) } Return (0x80000002) } } Scope (\_SB.PCI0.IXVE.IGPU) { Method (NBCI, 4, NotSerialized) { Debug = "------- NBCI _DSM --------" If (Arg1 != 0x0102) { Return (0x80000002) } If (Arg2 == 0x00) { Debug = "---- NBCI _SUPPORT ----" Name (BUF1, Buffer (0x04) {}) Local0 = 0x00 Local0 |= (0x01 << 0x00) Local0 |= (0x01 << 0x10) Local0 |= (0x01 << 0x12) BUF1 = Local0 Return (BUF1) /* \_SB_.PCI0.IXVE.IGPU.NBCI.BUF1 */ } If (Arg2 == 0x10) { Debug = "---- NBCI _GETOBJBYTYPE ----" Return (GOBT (Arg3)) } If (Arg2 == 0x12) { Debug = "---- NBCI _GETEVENTLIST ----" Return (GELM ()) } Return (0x80000002) } } Scope (\_SB.PCI0) { Method (RNVT, 0, NotSerialized) { Local0 = (GPXX () + 0xB800) Return (Local0) } OperationRegion (NVTO, SystemMemory, 0xF000B800, 0xFF) Field (NVTO, ByteAcc, NoLock, Preserve) { Offset (0x24), NVTA, 32 } Method (GNVT, 0, NotSerialized) { If (NVTA) { Return (NVTA) /* \_SB_.PCI0.NVTA */ } Else { Return (0xFFFDD000) } } OperationRegion (NVEX, SystemMemory, GNVT (), 0x30) Field (NVEX, ByteAcc, NoLock, Preserve) { Offset (0x1C), GPUP, 16 } Method (GGPU, 0, NotSerialized) { Local0 = (GPUP + GNVT ()) Local0 += 0x04 Return (Local0) } } Scope (\_SB.PCI0) { Method (GPC0, 0, NotSerialized) { Local0 = (GPXX () + 0x0001B000) Return (Local0) } Method (GPC1, 0, NotSerialized) { Local0 = (GPXX () + 0x8000) Return (Local0) } Method (GPC2, 0, NotSerialized) { Local0 = (GPXX () + 0x9000) Return (Local0) } Method (GPC3, 0, NotSerialized) { Local0 = (GPXX () + 0xB100) Return (Local0) } Method (GPC4, 0, NotSerialized) { Local0 = (GPXX () + 0xB700) Return (Local0) } OperationRegion (NMB0, SystemMemory, 0xFEF00000, 0x0FFF) Field (NMB0, ByteAcc, NoLock, Preserve) { Offset (0x44), CCMD, 8, CCND, 8, , 5, CCPL, 6, Offset (0x6C4), CFMD, 8, CFND, 8, CFPL, 6 } OperationRegion (P4MR, SystemMemory, 0xF001B000, 0xFF) Field (P4MR, ByteAcc, NoLock, Preserve) { Offset (0x48), MPCC, 1, Offset (0xC8), MPLM, 6, Offset (0xC9), MPLN, 6 } OperationRegion (OA8D, SystemMemory, 0xF0008000, 0xFF) Field (OA8D, ByteAcc, NoLock, Preserve) { Offset (0x50), NIST, 10, , 2, NSB1, 4, NSB2, 4, Offset (0x8C), TRFC, 10, Offset (0x8F), TRCD, 4, WRRC, 4, Offset (0x91), TR2P, 4, Offset (0x98), TXSD, 6, Offset (0x9C), Offset (0x9D), TRP, 4, Offset (0xA0), Offset (0xA2), TRC, 6, Offset (0xA8), TROE, 1, , 3, TROI, 3, Offset (0xF4), BWCP, 7, Offset (0xF5), BWIS, 7, Offset (0xF6), BWWB, 7, Offset (0xF7), BWHP, 7, HPCR, 1 } OperationRegion (O8ER, SystemMemory, 0xF0009000, 0xFF) Field (O8ER, ByteAcc, NoLock, Preserve) { Offset (0x70), CDP0, 1, Offset (0x71), CDS0, 8, , 4, CDC0, 4, , 5, CDB0, 2, Offset (0x74), CDP1, 1, Offset (0x75), CDS1, 8, , 4, CDC1, 4, , 5, CDB1, 2, Offset (0x78), CDP2, 1, Offset (0x79), CDS2, 8, , 4, CDC2, 4, , 5, CDB2, 2, Offset (0x7C), CDP3, 1, Offset (0x7D), CDS3, 8, , 4, CDC3, 4, , 5, CDB3, 2, Offset (0x80), INTL, 2, RCBD, 2, Offset (0x81), PCIH, 5, Offset (0x88), TOM1, 8, TOM2, 9, Offset (0x90), P0P0, 1, P1P0, 1, P0N0, 1, P1N0, 1, PCR0, 1, Offset (0x91), PCB0, 9, Offset (0x93), PCS0, 8, P0P1, 1, P1P1, 1, P0N1, 1, P1N1, 1, PCR1, 1, Offset (0x95), PCB1, 9, Offset (0x97), PCS1, 8, P0P2, 1, P1P2, 1, P0N2, 1, P1N2, 1, PCR2, 1, Offset (0x99), PCB2, 9, Offset (0x9B), PCS2, 8, P0P3, 1, P1P3, 1, P0N3, 1, P1N3, 1, PCR3, 1, Offset (0x9D), PCB3, 9, Offset (0x9F), PCS3, 8, P0P4, 1, P1P4, 1, P0N4, 1, P1N4, 1, PCR4, 1, Offset (0xA1), PCB4, 9, Offset (0xA3), PCS4, 8, Offset (0xA8), , 9, TWR, 2, Offset (0xC4), REFP, 16, REFB, 4, Offset (0xD8), , 3, CAWL, 3 } OperationRegion (OEER, SystemMemory, 0xF000B100, 0xB0) Field (OEER, ByteAcc, NoLock, Preserve) { Offset (0xA8), Offset (0xAA), CKDY, 16 } OperationRegion (OEES, SystemMemory, 0xF000B700, 0x30) Field (OEES, ByteAcc, NoLock, Preserve) { Offset (0x28), Offset (0x2A), PTMP, 16 } OperationRegion (PIOR, SystemMemory, GGPU (), 0x0200) Field (PIOR, ByteAcc, NoLock, Preserve) { GTVN, 8, PINU, 8, Offset (0x04), PIBU, 2816 } Name (M2CK, 0x00) Name (NCHA, 0x00) Method (CIMP, 0, NotSerialized) { ^M2CK = GM2C () ^NCHA = NOCH () Name (BUFA, Buffer (0x06) { 0x10, 0x0C, 0x00, 0x00, 0x0A, 0x03 /* ...... */ }) CreateByteField (BUFA, 0x02, BF03) CreateByteField (BUFA, 0x03, BF04) Name (BUFB, Buffer (0x06) { 0x00 /* . */ }) CreateWordField (BUFB, 0x00, BF01) CreateWordField (BUFB, 0x02, BF02) Name (BUFC, Buffer (0x0A) { 0x00 /* . */ }) CreateField (BUFC, 0x00, 0x03, BF0A) CreateField (BUFC, 0x03, 0x04, BF0B) CreateField (BUFC, 0x07, 0x04, BF0C) CreateField (BUFC, 0x0B, 0x04, BF0D) CreateField (BUFC, 0x0F, 0x04, BF0E) CreateField (BUFC, 0x13, 0x26, BF0F) Name (BUFD, Buffer (0x03) { 0x00, 0x00, 0x00 /* ... */ }) Name (BNKN, 0x00) Name (BNKX, 0x00) Name (COLN, 0x00) Name (COLX, 0x00) BF01 = 0x40 BF02 = (^M2CK * 0x02) Local2 = BUFB /* \_SB_.PCI0.CIMP.BUFB */ If (^RCBD == 0x00) { BF03 = One BF0F = (0x08000000 * ^TOM1) /* \_SB_.PCI0.TOM1 */ BF0A = 0x01 If (^INTL) { BF0A = 0x02 } If (^CDP0) { BF0D = ^CDC0 /* \_SB_.PCI0.CDC0 */ BF0B = ^CDB0 /* \_SB_.PCI0.CDB0 */ } ElseIf (^CDP1) { BF0D = ^CDC1 /* \_SB_.PCI0.CDC1 */ BF0B = ^CDB1 /* \_SB_.PCI0.CDB1 */ } ElseIf (^CDP2) { BF0D = ^CDC2 /* \_SB_.PCI0.CDC2 */ BF0B = ^CDB2 /* \_SB_.PCI0.CDB2 */ } ElseIf (^CDP3) { BF0D = ^CDC3 /* \_SB_.PCI0.CDC3 */ BF0B = ^CDB3 /* \_SB_.PCI0.CDB3 */ } BF0E = BF0D /* \_SB_.PCI0.CIMP.BF0D */ BF0C = BF0B /* \_SB_.PCI0.CIMP.BF0B */ Local1 = Local2 Concatenate (Local1, BUFC, Local2) If (^PCIH) { BF03 = 0x02 Local1 = (^TOM2 - 0x20) BF0F = (0x08000000 * Local1) Local1 = Local2 Concatenate (Local1, BUFC, Local2) } } ElseIf (^RCBD == 0x02) { Name (NDRE, 0x00) BF03 = Zero Local6 = Zero While (One) { If (Local6 == 0x05) { Break } If (MP0P (Local6) || MP1P (Local6)) { BF0F = (MCRS (Local6) * 0x08000000) BF0A = 0x01 If (MPCR (Local6)) { If (MP0P (Local6)) { If (MP1P (Local6)) { BF0A = 0x02 } } } BNKN = 0x03 BNKX = 0x02 COLN = 0x0C COLX = 0x08 If (MP0P (Local6)) { Local5 = MP0N (Local6) } ElseIf (MP1P (Local6)) { Local5 = MP1N (Local6) } If (BNKN > MCDB (Local5)) { BNKN = MCDB (Local5) } If (BNKX < MCDB (Local5)) { BNKX = MCDB (Local5) } If (COLN > MCDC (Local5)) { COLN = MCDC (Local5) } If (COLX < MCDC (Local5)) { COLX = MCDC (Local5) } BF0B = BNKN /* \_SB_.PCI0.CIMP.BNKN */ BF0C = BNKX /* \_SB_.PCI0.CIMP.BNKX */ BF0D = COLN /* \_SB_.PCI0.CIMP.COLN */ BF0E = COLX /* \_SB_.PCI0.CIMP.COLX */ NDRE++ Local1 = Local2 Concatenate (Local1, BUFC, Local2) } Local6++ } BF03 = NDRE /* \_SB_.PCI0.CIMP.NDRE */ } Else { Local5 = Zero } Name (VAR0, 0x00) Name (VAR1, 0x00) Name (VAR2, 0x00) Name (VAR3, 0x00) Name (VAR4, 0x00) Name (VAR5, 0x00) Name (VAR6, 0x00) Local3 = ^PINU /* \_SB_.PCI0.PINU */ BF04 = Local3 Local0 = (Local3 * 0x0B) Name (PITA, Buffer (Local0) {}) PITA = ^PIBU /* \_SB_.PCI0.PIBU */ Local4 = 0x00 While (Local3) { If (^NCHA == 0x01) { If (Local3 == 0x01) { Local4 -= 0x0B } } Local4 += 0x03 VAR0 = DerefOf (PITA [Local4]) Local4++ VAR1 = DerefOf (PITA [Local4]) Local4++ VAR2 = DerefOf (PITA [Local4]) Local4++ VAR3 = DerefOf (PITA [Local4]) Local4++ VAR4 = DerefOf (PITA [Local4]) Local4++ VAR5 = DerefOf (PITA [Local4]) Local4++ Local5 = DerefOf (PITA [Local4]) Local5 *= 0x0100 VAR5 += Local5 /* \_SB_.PCI0.CIMP.VAR5 */ Local4++ VAR6 = DerefOf (PITA [Local4]) BUFD [0x00] = ATBM (VAR0, VAR1, VAR2, VAR3, VAR4, VAR5) BUFD [0x01] = WCLC (VAR0, VAR1, VAR2, VAR3, VAR4, VAR5, VAR6) BUFD [0x02] = SELA (VAR6) Local1 = Local2 Concatenate (Local1, BUFD, Local2) Local4++ Local3-- } Concatenate (BUFA, Local2, Local0) Return (Local0) } Method (GM2C, 0, NotSerialized) { Local0 = (^CCND * 0x19) Local0 /= ^CCMD Local0 /= ^CCPL Local0 *= 0x04 Local0 *= ^CFND /* \_SB_.PCI0.CFND */ Local0 /= ^CFMD Local0 /= ^CFPL If (^MPCC) { Local0 /= 0x02 } Else { Local0 /= 0x04 } Local0 *= 0x02 Local0 *= ^MPLN /* \_SB_.PCI0.MPLN */ Local0 /= ^MPLM Return (Local0) } Method (NOCH, 0, NotSerialized) { Local6 = 0x01 If (^INTL == 0x02) { Local0 = (^CDP0 * ^CDS0) /* \_SB_.PCI0.CDS0 */ Local1 = (^CDP1 * ^CDS1) /* \_SB_.PCI0.CDS1 */ Local2 = (^CDP2 * ^CDS2) /* \_SB_.PCI0.CDS2 */ Local3 = (^CDP3 * ^CDS3) /* \_SB_.PCI0.CDS3 */ Local0 += Local1 Local2 += Local3 If (Local0 == Local2) { Local6 = 0x02 } Else { Local6 = 0x01 } } Return (Local6) } Method (MP0P, 1, NotSerialized) { If (Arg0 == 0x00) { Return (^P0P0) /* \_SB_.PCI0.P0P0 */ } If (Arg0 == 0x01) { Return (^P0P1) /* \_SB_.PCI0.P0P1 */ } If (Arg0 == 0x02) { Return (^P0P2) /* \_SB_.PCI0.P0P2 */ } If (Arg0 == 0x03) { Return (^P0P3) /* \_SB_.PCI0.P0P3 */ } If (Arg0 == 0x04) { Return (^P0P4) /* \_SB_.PCI0.P0P4 */ } Return (Zero) } Method (MP1P, 1, NotSerialized) { If (Arg0 == 0x00) { Return (^P1P0) /* \_SB_.PCI0.P1P0 */ } If (Arg0 == 0x01) { Return (^P1P1) /* \_SB_.PCI0.P1P1 */ } If (Arg0 == 0x02) { Return (^P1P2) /* \_SB_.PCI0.P1P2 */ } If (Arg0 == 0x03) { Return (^P1P3) /* \_SB_.PCI0.P1P3 */ } If (Arg0 == 0x04) { Return (^P1P4) /* \_SB_.PCI0.P1P4 */ } Return (Zero) } Method (MPCR, 1, NotSerialized) { If (Arg0 == 0x00) { Return (^PCR0) /* \_SB_.PCI0.PCR0 */ } If (Arg0 == 0x01) { Return (^PCR1) /* \_SB_.PCI0.PCR1 */ } If (Arg0 == 0x02) { Return (^PCR2) /* \_SB_.PCI0.PCR2 */ } If (Arg0 == 0x03) { Return (^PCR3) /* \_SB_.PCI0.PCR3 */ } If (Arg0 == 0x04) { Return (^PCR4) /* \_SB_.PCI0.PCR4 */ } Return (Zero) } Method (MP0N, 1, NotSerialized) { If (Arg0 == 0x00) { Return (^P0N0) /* \_SB_.PCI0.P0N0 */ } If (Arg0 == 0x01) { Return (^P0N1) /* \_SB_.PCI0.P0N1 */ } If (Arg0 == 0x02) { Return (^P0N2) /* \_SB_.PCI0.P0N2 */ } If (Arg0 == 0x03) { Return (^P0N3) /* \_SB_.PCI0.P0N3 */ } If (Arg0 == 0x04) { Return (^P0N4) /* \_SB_.PCI0.P0N4 */ } Return (Zero) } Method (MP1N, 1, NotSerialized) { If (Arg0 == 0x00) { Return (^P1N0) /* \_SB_.PCI0.P1N0 */ } If (Arg0 == 0x01) { Return (^P1N1) /* \_SB_.PCI0.P1N1 */ } If (Arg0 == 0x02) { Return (^P1N2) /* \_SB_.PCI0.P1N2 */ } If (Arg0 == 0x03) { Return (^P1N3) /* \_SB_.PCI0.P1N3 */ } If (Arg0 == 0x04) { Return (^P1N4) /* \_SB_.PCI0.P1N4 */ } Return (Zero) } Method (MCRB, 1, NotSerialized) { If (Arg0 == 0x00) { Return (^PCB0) /* \_SB_.PCI0.PCB0 */ } If (Arg0 == 0x01) { Return (^PCB1) /* \_SB_.PCI0.PCB1 */ } If (Arg0 == 0x02) { Return (^PCB2) /* \_SB_.PCI0.PCB2 */ } If (Arg0 == 0x03) { Return (^PCB3) /* \_SB_.PCI0.PCB3 */ } If (Arg0 == 0x04) { Return (^PCB4) /* \_SB_.PCI0.PCB4 */ } Return (Zero) } Method (MCRS, 1, NotSerialized) { If (Arg0 == 0x00) { Return (^PCS0) /* \_SB_.PCI0.PCS0 */ } If (Arg0 == 0x01) { Return (^PCS1) /* \_SB_.PCI0.PCS1 */ } If (Arg0 == 0x02) { Return (^PCS2) /* \_SB_.PCI0.PCS2 */ } If (Arg0 == 0x03) { Return (^PCS3) /* \_SB_.PCI0.PCS3 */ } If (Arg0 == 0x04) { Return (^PCS4) /* \_SB_.PCI0.PCS4 */ } Return (Zero) } Method (MCDB, 1, NotSerialized) { If (Arg0 == 0x00) { Return (^CDB0) /* \_SB_.PCI0.CDB0 */ } If (Arg0 == 0x01) { Return (^CDB1) /* \_SB_.PCI0.CDB1 */ } If (Arg0 == 0x02) { Return (^CDB2) /* \_SB_.PCI0.CDB2 */ } If (Arg0 == 0x03) { Return (^CDB3) /* \_SB_.PCI0.CDB3 */ } Return (Zero) } Method (MCDC, 1, NotSerialized) { If (Arg0 == 0x00) { Return (^CDC0) /* \_SB_.PCI0.CDC0 */ } If (Arg0 == 0x01) { Return (^CDC1) /* \_SB_.PCI0.CDC1 */ } If (Arg0 == 0x02) { Return (^CDC2) /* \_SB_.PCI0.CDC2 */ } If (Arg0 == 0x03) { Return (^CDC3) /* \_SB_.PCI0.CDC3 */ } Return (Zero) } Method (ATBM, 6, NotSerialized) { Local6 = (Arg4 * 0x08) Local6 /= 0x02 Local0 = (0x64 * Local6) Local1 = (Local6 + Arg5) Divide (Local0, Local1, Local1, Local6) Local6 = (0x64 - Local6) Local6 *= Arg3 Local0 = (Arg0 + Arg1) Local0 += Arg2 Local0 += Arg3 Divide (Local6, Local0, Local1, Local6) Local0 = (^M2CK * 0x10) Local0 *= ^NCHA /* \_SB_.PCI0.NCHA */ Local0 *= Local6 Local0 *= 0x4B Local0 /= 0x64 Local0 /= 0x64 Divide (Local0, 0x64, Local1, Local0) If (Local1 > 0x32) { Local0 += 0x01 } Return (Local0) } Method (WCLC, 7, NotSerialized) { Name (RDBC, 0x00) RDBC = (0x02 + ^TR2P) /* \_SB_.PCI0.TR2P */ RDBC += ^TRCD /* \_SB_.PCI0.TRCD */ RDBC += ^TRP /* \_SB_.PCI0.TRP_ */ Name (WRBC, 0x00) WRBC = (^TRCD + ^TRP) /* \_SB_.PCI0.TRP_ */ WRBC += 0x04 WRBC += CAWL /* \_SB_.PCI0.CAWL */ WRBC += ^TWR /* \_SB_.PCI0.TWR_ */ Name (SWBC, 0x00) Name (TBM2, 0x00) If (^TROE == 0x01) { TBM2 = ^TROI /* \_SB_.PCI0.TROI */ } Local0 = (TBM2 + WRBC) /* \_SB_.PCI0.WCLC.WRBC */ SWBC = (Arg2 * MAX (Local0, ^TRC)) SWBC /= 0x02 Name (SCPU, 0x00) Local0 = (TBM2 + RDBC) /* \_SB_.PCI0.WCLC.RDBC */ SCPU = (Arg0 * MAX (Local0, ^TRC)) SCPU /= 0x02 Name (SISO, 0x00) Local0 = (TBM2 + RDBC) /* \_SB_.PCI0.WCLC.RDBC */ SISO = (Arg1 * MAX (Local0, ^TRC)) SISO /= 0x02 Name (SHIS, 0x00) Local0 = (0x0100 / ^NCHA) Local1 = (Local0 / 0x10) Local2 = (Arg3 * 0x20) Divide (Local2, Local0, Local4, Local3) If (Local4 != 0x00) { Local3 += 0x01 } Local4 = (Local1 - 0x04) Local4 += RDBC /* \_SB_.PCI0.WCLC.RDBC */ Local4 += TBM2 /* \_SB_.PCI0.WCLC.TBM2 */ SHIS = (Local3 * MAX (Local4, ^TRC)) Name (BWCO, 0x00) BWCO = (SWBC + SCPU) /* \_SB_.PCI0.WCLC.SCPU */ BWCO += SISO /* \_SB_.PCI0.WCLC.SISO */ BWCO += SHIS /* \_SB_.PCI0.WCLC.SHIS */ BWCO *= 0x01 Name (NICO, 0x00) Local0 = (TBM2 + RDBC) /* \_SB_.PCI0.WCLC.RDBC */ NICO = (MAX (Local0, ^TRC) * Arg4) NICO /= 0x02 Divide (BWCO, Arg5, Local1, Local0) If (Local1 != 0x00) { Local0 += 0x01 } NICO *= Local0 Name (RECO, 0x00) RECO = (BWCO + NICO) /* \_SB_.PCI0.WCLC.NICO */ Divide (RECO, ^REFP, Local2, RECO) /* \_SB_.PCI0.WCLC.RECO */ If (Local2 != 0x00) { RECO += 0x01 } RECO *= ^TRFC /* \_SB_.PCI0.TRFC */ RECO *= ^REFB /* \_SB_.PCI0.REFB */ Name (MELA, 0x00) MELA = (BWCO + RECO) /* \_SB_.PCI0.WCLC.RECO */ MELA += NICO /* \_SB_.PCI0.WCLC.NICO */ MELA *= 0x03E8 MELA /= ^M2CK Name (WALA, 0x00) Local0 = (^M2CK / 0x02) Divide (^CKDY, Local0, Local1, Local0) If (Local1) { Local0++ } WALA = (^TXSD * 0x10) Divide (WALA, ^M2CK, Local1, WALA) /* \_SB_.PCI0.WCLC.WALA */ If (Local1) { WALA++ } WALA += Local0 WALA *= 0x03E8 Local1 = (Local0 * 0x03E8) Local0 = 0x00 If (Arg6 & 0x01) { Local0 = (^PTMP * 0x28) Local0 += 0x2710 Local0 -= Local1 } ElseIf (Arg6 & 0x04) { Local0 = 0x4E20 } ElseIf (Arg6 & 0x02) { Local0 = 0x1388 } ElseIf (Arg6 & 0x80) { Local0 = 0x1388 } WALA += Local0 Local0 = (MELA + WALA) /* \_SB_.PCI0.WCLC.WALA */ Local0 += 0x00 Local0 += 0x64 Local0 += 0x00 Divide (Local0, 0x03E8, Local1, Local0) If (Local1) { Local0 += 0x01 } Return (Local0) } Method (SELA, 1, NotSerialized) { Local0 = 0x00 If (Arg0 & 0x20) { Local0 = 0x1E } Return (Local0) } Method (MAX, 2, NotSerialized) { Local0 = Arg0 If (Arg1 > Arg0) { Local0 = Arg1 } Return (Local0) } } Method (GOBT, 1, NotSerialized) { CreateWordField (Arg0, 0x02, USRG) Name (NBBU, Buffer (0x10) { 0x00 /* . */ }) CreateWordField (NBBU, 0x08, NBB1) CreateDWordField (NBBU, 0x0A, NBB2) If (USRG == 0x5049) { NBB1 = "PI" Local0 = \_SB.PCI0.CIMP () NBB2 = (SizeOf (Local0) + SizeOf (NBBU)) Return (Concatenate (NBBU, Local0)) } Return (0x80000002) } Method (GELM, 0, NotSerialized) { Return (Package (0x20) { 0x80, ToUUID ("e06bde62-ee75-48f4-a583-b23e69abf891"), 0x81, ToUUID ("3adebd0f-0c5f-46ed-ab2e-04962b4fdcbc"), 0x86, ToUUID ("1e519311-3e75-4208-b05e-ebe17e3ff41f"), 0x87, ToUUID ("37f85341-4418-4f24-8533-38ffc7295542"), 0xD1, ToUUID ("93263095-da5f-46a0-8b1c-db2f1f7d66af"), 0xD2, ToUUID ("be907006-d603-4714-9ae2-9dba8997a805"), 0xD3, ToUUID ("21d355e1-498d-4c1f-ae01-05cef8dd053f"), 0xD4, ToUUID ("edbcedf1-bbc9-420e-a3c0-322b1d37c3aa"), 0xD5, ToUUID ("377e84e1-13de-41fb-a096-0f08528ba689"), 0xD6, ToUUID ("4deeff13-0899-4250-8f9e-03406868b48e"), 0xDB, ToUUID ("42848006-8886-490e-8c72-2bdca93a8a09"), 0xDC, ToUUID ("44ede80f-c7e7-4c1c-82ab-9a80050253eb"), 0xDD, ToUUID ("b7175ed9-c995-4d93-8f71-ea25b3a47562"), 0xEC, ToUUID ("4d572d3a-f985-48e4-a6ed-6dff1e040373"), 0xEF, ToUUID ("b3e485d2-3cc1-4b94-8f31-77ba2fdc9ebe"), 0xF0, ToUUID ("360d6fb6-1d4e-4fa6-b848-1be33dd8ec7b") }) } Method (GPXX, 0, NotSerialized) { Return (0xF0000000) } Method (GVAM, 0, NotSerialized) { Return (\_SB.PCI0.SBUS.NVAM) } Method (CMPB, 2, NotSerialized) { Local1 = SizeOf (Arg0) If (Local1 != SizeOf (Arg1)) { Return (0x00) } Local0 = 0x00 While (Local0 < Local1) { If (DerefOf (Arg0 [Local0]) != DerefOf (Arg1 [Local0] )) { Return (0x00) } Local0++ } Return (0x01) } Method (W2K6, 0, NotSerialized) { If (CondRefOf (_OSI, Local0)) { If (\_OSI ("Windows 2006")) { Return (0x01) } } Return (0x00) } Device (RP05) { Name (_ADR, 0x00150000) // _ADR: Address OperationRegion (R5MR, SystemMemory, 0xF00A8000, 0x0FFF) Field (R5MR, ByteAcc, NoLock, Preserve) { Offset (0x04), CTRL, 8, Offset (0x19), SECB, 8, SUBB, 8, Offset (0x88), , 21, TPEN, 1, Offset (0x90), , 4, LDIS, 1, , 24, LACT, 1, Offset (0xFE0), PSNT, 4 } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (SECB) /* \_SB_.PCI0.RP05.SECB */ } Method (_STA, 0, NotSerialized) // _STA: Status { R519 = SECB /* \_SB_.PCI0.RP05.SECB */ R520 = SUBB /* \_SB_.PCI0.RP05.SUBB */ R5PR = PSNT /* \_SB_.PCI0.RP05.PSNT */ Return (0x0F) } Method (_PS0, 0, Serialized) // _PS0: Power State 0 { If (OSDW ()) { If ((WOWE != 0x01) && (TAPD == 0x01)) { \_SB.PCI0.NVPM.MTEN (0x00) PSNT = R5PR /* \R5PR */ Local0 = 0x00 While (0x01) { APPS = 0x00 Sleep (0x6E) Local2 = 0x00 Local1 = (Timer + 0x00989680) While (Timer <= Local1) { If (LACT == 0x01) { Local2 = 0x01 Break } Sleep (0x0A) } If (Local2 == 0x01) { Break } If (Local0 == 0x04) { Break } Local0++ APPS = 0x01 Sleep (0x6E) } \_SB.PCI0.NVPM.MTEN (0x01) SECB = R519 /* \R519 */ SUBB = R520 /* \R520 */ } } } Method (_PS3, 0, Serialized) // _PS3: Power State 3 { If (OSDW ()) { If ((WOWE != 0x01) && (TAPD == 0x01)) { \_SB.PCI0.RP05.ARPT.PSTA = 0x03 CTRL = 0x00 SUBB = 0x00 SECB = 0x00 Sleep (0x05) Local0 = (Timer + 0x00989680) While (Timer <= Local0) { If (TPEN == 0x00) { Break } Sleep (0x0A) } PSNT = 0x0D Sleep (0x0A) APPS = 0x01 Sleep (0x64) } } } Device (ARPT) { Name (_ADR, 0x00) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x0B, 0x04 }) OperationRegion (ARE0, PCI_Config, 0x00, 0xA0) Field (ARE0, ByteAcc, NoLock, Preserve) { AVND, 16, Offset (0x48), PSTA, 2, Offset (0x49), PMEE, 1 } Method (WWEN, 1, NotSerialized) { WOWE = Arg0 } Method (PDEN, 1, NotSerialized) { TAPD = Arg0 } } } } } }