/* RSD PTR: OEM=INTEL, ACPI_Rev=2.0x (2) XSDT=0x000000005f4fe120, length=36, cksum=45 */ /* XSDT: Length=100, Revision=1, Checksum=183, OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1, Creator ID=, Creator Revision=0x1000013 Entries={ 0x000000005f4fc000, 0x000000005f4fd000, 0x000000005f4fb000, 0x000000005f4fa000, 0x000000005f4f9000, 0x000000005f4f8000, 0x000000005f4f1000, 0x000000005f4f0000 } */ /* FACP: Length=244, Revision=4, Checksum=255, OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1, Creator ID=MSFT, Creator Revision=0x1000013 FACS=0x5f488000, DSDT=0x5f4f2000 INT_MODEL=PIC Preferred_PM_Profile=Unspecified (0) SCI_INT=9 SMI_CMD=0xb2, ACPI_ENABLE=0xa0, ACPI_DISABLE=0xa1, S4BIOS_REQ=0x0 PSTATE_CNT=0x0 PM1a_EVT_BLK=0x400-0x403 PM1a_CNT_BLK=0x404-0x405 PM2_CNT_BLK=0x420-0x420 PM_TMR_BLK=0x408-0x40b GPE0_BLK=0x428-0x42f P_LVL2_LAT=101 us, P_LVL3_LAT=1001 us FLUSH_SIZE=0, FLUSH_STRIDE=0 DUTY_OFFSET=1, DUTY_WIDTH=3 DAY_ALRM=13, MON_ALRM=0, CENTURY=0 IAPC_BOOT_ARCH={LEGACY_DEVICES,8042} Flags={WBINVD,C1_SUPPORTED,SLEEP_BUTTON,S4_RTC_WAKE,RESET_REGISTER,PLATFORM_CLOCK} RESET_REG=0xcf9:0[8] (IO), RESET_VALUE=0x6 X_FACS=0x000000005f488000, X_DSDT=0x000000005f4f2000 X_PM1a_EVT_BLK=0x00000000:0[0] (Memory) X_PM1a_CNT_BLK=0x00000000:0[0] (Memory) X_PM_TMR_BLK=0x00000000:0[0] (Memory) */ /* FACS: Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000 Global_Lock= Flags= Version=1 */ /* DSDT: Length=23813, Revision=1, Checksum=18, OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1, Creator ID=MSFT, Creator Revision=0x1000013 */ /* SSDT: Length=1220, Revision=2, Checksum=203, OEMID=PmRef, OEM Table ID=CpuPm, OEM Revision=0x3000, Creator ID=INTL, Creator Revision=0x20051117 */ /* HPET: Length=56, Revision=1, Checksum=180, OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1, Creator ID=MSFT, Creator Revision=0x1000013 HPET Number=0 ADDR=0xfed00000:0[0] (Memory) HW Rev=0x1 Comparators=2 Counter Size=1 Legacy IRQ routing capable={TRUE} PCI Vendor ID=0x8086 Minimal Tick=128 Flags=0x00 */ /* APIC: Length=104, Revision=2, Checksum=110, OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1, Creator ID=MSFT, Creator Revision=0x1000013 Local APIC ADDR=0xfee00000 Flags={PC-AT} Type=Local APIC ACPI CPU=1 Flags={ENABLED} APIC ID=0 Type=Local APIC ACPI CPU=2 Flags={ENABLED} APIC ID=1 Type=IO APIC APIC ID=4 INT BASE=0 ADDR=0x00000000fec00000 Type=INT Override BUS=0 IRQ=0 INTR=2 Flags={Polarity=conforming, Trigger=conforming} Type=INT Override BUS=0 IRQ=9 INTR=9 Flags={Polarity=active-hi, Trigger=level} Type=Local APIC NMI ACPI CPU=1 LINT Pin=1 Flags={Polarity=active-hi, Trigger=edge} Type=Local APIC NMI ACPI CPU=2 LINT Pin=1 Flags={Polarity=active-hi, Trigger=edge} */ /* MCFG: Length=60, Revision=1, Checksum=220, OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1, Creator ID=MSFT, Creator Revision=0x1000013 Base Address=0x00000000e0000000 Segment Group=0x0000 Start Bus=0 End Bus=255 */ /* ASF!: Length=165, Revision=32, Checksum=92, OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1, Creator ID=MSFT, Creator Revision=0x1000013 */ /* SLIC: Length=384, Revision=1, Checksum=232, OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1, Creator ID=MSFT, Creator Revision=0x1000013 */ /* BOOT: Length=40, Revision=1, Checksum=116, OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1, Creator ID=MSFT, Creator Revision=0x1000013 */ /* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20160527-32 * Copyright (c) 2000 - 2016 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of /tmp/acpidump.6zPKsS/acpdump.din, Wed Dec 14 20:29:54 2016 * * Original Table Header: * Signature "DSDT" * Length 0x000061A5 (24997) * Revision 0x01 **** 32-bit table (V1), no 64-bit math support * Checksum 0xB4 * OEM ID "INTEL " * OEM Table ID "Napa " * OEM Revision 0x00000001 (1) * Compiler ID "MSFT" * Compiler Version 0x01000013 (16777235) */ DefinitionBlock ("", "DSDT", 1, "INTEL ", "Napa ", 0x00000001) { OperationRegion (PORT, SystemIO, 0x80, One) Field (PORT, ByteAcc, NoLock, Preserve) { P80H, 8 } OperationRegion (GPIO, SystemIO, 0x0500, 0x39) Field (GPIO, ByteAcc, NoLock, Preserve) { Offset (0x2C), Offset (0x2D), , 1, INV9, 1, INVA, 1, Offset (0x38), , 1, , 1, CPEN, 1 } OperationRegion (PMBA, SystemIO, 0x0400, 0x80) Field (PMBA, ByteAcc, NoLock, Preserve) { Offset (0x28), , 2, SPST, 1, Offset (0x29), Offset (0x2A), Offset (0x2B), GP2B, 8, Offset (0x42), , 1, GPEC, 1 } OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000) Field (RCRB, DWordAcc, Lock, Preserve) { Offset (0x1000), Offset (0x3000), Offset (0x3404), HPAS, 2, , 5, HPAE, 1, Offset (0x3418), , 1, PATD, 1, SATD, 1, SMBD, 1, AZAD, 1, A97D, 1, Offset (0x341A), RP1D, 1, RP2D, 1, RP3D, 1, RP4D, 1 } OperationRegion (MBOX, SystemMemory, 0x5F4BED90, 0x000000E8) Field (MBOX, AnyAcc, NoLock, Preserve) { PCI1, 8, PCI2, 8, PCI3, 8, PCI4, 8, PCI5, 8, PCI6, 8, PCI7, 8, PCI8, 8, NLCK, 8, ZIPE, 8, COMA, 8, CAIO, 8, CAIP, 8, CAMD, 8, CADA, 8, COMB, 8, CBIO, 8, CBIP, 8, CBMD, 8, CBDA, 8, COMC, 8, CCIO, 8, CCIP, 8, CCMD, 8, CCDA, 8, COMD, 8, CDIO, 8, CDIP, 8, CDMD, 8, CDDA, 8, LPT1, 8, L1IO, 8, L1IP, 8, L1MD, 8, L1DA, 8, LPT2, 8, L2IO, 8, L2IP, 8, L2MD, 8, L2DA, 8, LPT3, 8, L3IO, 8, L3IP, 8, L3MD, 8, L3DA, 8, FDDC, 8, FDWP, 8, HGMP, 8, LGMP, 8, MIDI, 8, AZLA, 8, AUDO, 8, MODM, 8, IDEC, 8, PACT, 8, SCFG, 8, AIBT, 8, AMOD, 8, P0HP, 8, P2HP, 8, P0IL, 8, P2IL, 8, IDLY, 8, PMTP, 8, PMIO, 8, PMBM, 8, PMTM, 8, PSTP, 8, PSIO, 8, PSBM, 8, PSTM, 8, SMTP, 8, SMIO, 8, SMBM, 8, SMTM, 8, SSTP, 8, SSIO, 8, SSBM, 8, SSTM, 8, IDE0, 8, IDE1, 8, IDE2, 8, IDE3, 8, IDE4, 8, IDE5, 8, IDE6, 8, IDE7, 8, PEGS, 8, D2F1, 8, IGMT, 8, DTSZ, 8, HIUB, 8, LUBS, 8, EDCG, 8, SDFY, 8, SDTC, 8, SDRP, 8, SDCL, 8, SDRC, 8, SDRE, 8, FC2L, 8, FC3L, 8, FCS4, 8, APIM, 8, HPTS, 8, HPTA, 8, EMAS, 8, MASF, 8, ASFB, 8, MBTX, 8, XPRO, 8, IDER, 8, SOLE, 8, EYLS, 8, EYLH, 8, TPMD, 8, TPMO, 8, TPMC, 8, TPMM, 8, TPCC, 8, TPLC, 8, TPLR, 32, ISTC, 8, TRML, 8, TRON, 8, NXMD, 8, PCRR, 8, C4EN, 8, C43D, 8, EMTT, 8, PROH, 8, DFSB, 8, TUBM, 8, TSTE, 8, DAS3, 8, WKPM, 8, WKMD, 8, WKS5, 8, HOUR, 8, MINS, 8, SECS, 8, DOFM, 8, QKS4, 8, POPU, 8, POPD, 8, NXFE, 8, VTST, 8, VTFE, 8, S5FG, 8, CSTS, 8, ENCS, 8, DEC4, 8, HC4E, 8, ENC6, 8, CSTR, 8, CMPE, 8, DTSE, 8, DTSC, 8, QBOT, 8, QEBT, 8, PBOT, 8, OSYS, 16, PSW0, 8, PSW1, 8, D2DF, 8, F12F, 8 } OperationRegion (CMS1, SystemIO, 0x72, 0x02) Field (CMS1, ByteAcc, NoLock, Preserve) { CMSI, 8, CMSD, 8 } Method (CMSW, 2, NotSerialized) { CMSI = Arg0 CMSD = Arg1 } OperationRegion (IO_T, SystemIO, 0x0800, 0x10) Field (IO_T, ByteAcc, NoLock, Preserve) { Offset (0x02), Offset (0x04), Offset (0x06), Offset (0x08), TRP0, 8, Offset (0x0A), 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 (NVST, SystemMemory, 0x5F4BEE78, 0x00000056) Field (NVST, AnyAcc, Lock, Preserve) { SMIF, 8, PRM0, 8, PRM1, 8, BRTL, 8, TLST, 8, IGDS, 8, LCDA, 16, CSTE, 16, NSTE, 16, CADL, 16, PADL, 16, LIDS, 8, PWRS, 8, BVAL, 32, CMPF, 8, CSTF, 8, GTF0, 56, GTF2, 56, IDEM, 8, DTS1, 8, DTS2, 8, DTSF, 8, PPMF, 32, DI00, 320 } Scope (_PR) { Processor (CPU0, 0x01, 0x00000410, 0x06) {} Processor (CPU1, 0x02, 0x00000410, 0x06) {} } Method (IHWM, 2, NotSerialized) { PRM0 = Arg0 DI00 = Arg1 APMC = 0xD1 Local0 = DI00 /* \DI00 */ Return (Local0) } OperationRegion (GSMI, SystemIO, 0xB2, 0x02) Field (GSMI, ByteAcc, NoLock, Preserve) { APMC, 8, APMD, 8 } Name (ECON, Zero) Name (CTYP, Zero) Name (DSEN, One) Name (PSTA, Zero) Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep { If (Arg0 == 0x03) { P80H = 0x53 } If (Arg0 == 0x04) { If (ECON) { \_SB.PCI0.LPC.EC0.FLS4 = One } P80H = 0x54 } Return (Zero) } Method (_WAK, 1, NotSerialized) // _WAK: Wake { If (ECON) { \_SB.BAT1.UBIF () Notify (\_SB.BAT1, 0x80) // Status Change Notify (\_SB.BAT1, 0x81) // Information Change } If (Arg0 == 0x03) { Notify (\_SB.PCI0.EXP1, Zero) // Bus Check Notify (\_SB.PCI0.EXP4, Zero) // Bus Check P80H = 0xE3 } If (Arg0 == 0x04) { Notify (\_SB.PCI0.EXP1, Zero) // Bus Check Notify (\_SB.PCI0.EXP4, Zero) // Bus Check P80H = 0xE4 } Return (Zero) } Name (_S0, Package (0x04) // _S0_: S0 System State { Zero, Zero, Zero, Zero }) If (DAS3 == One) { Name (_S3, Package (0x04) // _S3_: S3 System State { 0x05, 0x05, Zero, Zero }) } Name (_S4, Package (0x04) // _S4_: S4 System State { 0x06, 0x06, Zero, Zero }) Name (_S5, Package (0x04) // _S5_: S5 System State { 0x07, 0x07, Zero, Zero }) Scope (_GPE) { Method (_L03, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.UHC1, 0x02) // Device Wake } Method (_L04, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.UHC2, 0x02) // Device Wake } Method (_L05, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.AZAL, 0x02) // Device Wake Notify (\_SB.PCI0.MODM, 0x02) // Device Wake } Method (_L09, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.EXP1, 0x02) // Device Wake Notify (\_SB.PCI0.EXP2, 0x02) // Device Wake Notify (\_SB.PCI0.EXP3, 0x02) // Device Wake Notify (\_SB.PCI0.EXP4, 0x02) // Device Wake } Method (_L0B, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.P32, 0x02) // Device Wake } Method (_L0C, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.UHC3, 0x02) // Device Wake } Method (_L0D, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.ECHI, 0x02) // Device Wake } Method (_L0E, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.UHC4, 0x02) // Device Wake } Method (_L19, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Sleep (0x64) If (\_SB.PCI0.EXP4.PDC4) { \_SB.PCI0.EXP4.PDC4 = One \_SB.PCI0.EXP4.HPCS = One If (\_SB.PCI0.EXP4.PDS4) { INV9 = Zero APMD = 0x94 APMC = 0xB2 Sleep (0x64) } Else { INV9 = One Sleep (0x64) } Notify (\_SB.PCI0.EXP4, Zero) // Bus Check } } Method (_L1A, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Sleep (0x64) If (\_SB.PCI0.EXP1.PDC1) { \_SB.PCI0.EXP1.PDC1 = One \_SB.PCI0.EXP1.HPCS = One If (\_SB.PCI0.EXP1.PDS1) { INVA = Zero APMD = 0x91 APMC = 0xB2 Sleep (0x64) } Else { INVA = One Sleep (0x64) } Notify (\_SB.PCI0.EXP1, Zero) // Bus Check } } } Name (GPIC, Zero) Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model { GPIC = Arg0 } Method (_INI, 0, NotSerialized) // _INI: Initialize { P80H = 0x12 If (CondRefOf (_OSI, Local0)) { If (_OSI ("Linux")) { OSYS = 0x03E8 \_SB.PCI0.LPC.S4TM = 0x0A \_SB.PCI0.EXP2.PXS2.LSMP = 0x43 \_SB.PCI0.EXP2.LL0S = One \_SB.PCI0.EXP2.LLL1 = One } ElseIf (_OSI ("Windows 2006")) { OSYS = 0x07D6 \_SB.PCI0.LPC.S4TM = 0x06 \_SB.PCI0.EXP2.PXS2.LSMP = Zero \_SB.PCI0.EXP2.LL0S = Zero \_SB.PCI0.EXP2.LLL1 = Zero } Else { \_SB.PCI0.LPC.S4TM = 0x0A \_SB.PCI0.EXP2.PXS2.LSMP = 0x43 \_SB.PCI0.EXP2.LL0S = One \_SB.PCI0.EXP2.LLL1 = One OSYS = 0x07D1 } } Else { \_SB.PCI0.LPC.S4TM = 0x0A \_SB.PCI0.EXP2.PXS2.LSMP = 0x43 \_SB.PCI0.EXP2.LL0S = One \_SB.PCI0.EXP2.LLL1 = One OSYS = 0x07D0 } } Method (GETP, 1, Serialized) { If ((Arg0 & 0x09) == Zero) { Return (Ones) } If ((Arg0 & 0x09) == 0x08) { Return (0x0384) } Local0 = ((Arg0 & 0x0300) >> 0x08) Local1 = ((Arg0 & 0x3000) >> 0x0C) Return ((0x1E * (0x09 - (Local0 + Local1)))) } Method (GDMA, 5, Serialized) { If (Arg0) { If (Arg1 && Arg4) { Return (0x14) } If (Arg2 && Arg4) { Return (((0x04 - Arg3) * 0x0F)) } Return (((0x04 - Arg3) * 0x1E)) } Return (Ones) } Method (GETT, 1, Serialized) { Return ((0x1E * (0x09 - (((Arg0 >> 0x02) & 0x03 ) + (Arg0 & 0x03))))) } Method (GETF, 3, Serialized) { Name (TMPF, Zero) If (Arg0) { TMPF |= One } If (Arg2 & 0x02) { TMPF |= 0x02 } If (Arg1) { TMPF |= 0x04 } If (Arg2 & 0x20) { TMPF |= 0x08 } If (Arg2 & 0x4000) { TMPF |= 0x10 } Return (TMPF) /* \GETF.TMPF */ } Method (SETP, 3, Serialized) { If (Arg0 > 0xF0) { Return (0x08) } Else { If (Arg1 & 0x02) { If ((Arg0 <= 0x78) && (Arg2 & 0x02)) { Return (0x2301) } If ((Arg0 <= 0xB4) && (Arg2 & One)) { Return (0x2101) } } Return (0x1001) } } Method (SDMA, 1, Serialized) { If (Arg0 <= 0x14) { Return (One) } If (Arg0 <= 0x1E) { Return (0x02) } If (Arg0 <= 0x2D) { Return (One) } If (Arg0 <= 0x3C) { Return (0x02) } If (Arg0 <= 0x5A) { Return (One) } Return (Zero) } Method (SETT, 3, Serialized) { If (Arg1 & 0x02) { If ((Arg0 <= 0x78) && (Arg2 & 0x02)) { Return (0x0B) } If ((Arg0 <= 0xB4) && (Arg2 & One)) { Return (0x09) } } Return (0x04) } Scope (_SB) { Device (PWRB) { Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */) // _HID: Hardware ID } Device (LID0) { Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID Method (_LID, 0, NotSerialized) // _LID: Lid Status { If (ECON) { If (^^PCI0.LPC.EC0.LID2 == Zero) { Return (One) } Else { Return (Zero) } } Else { Return (One) } } } Device (SLPB) { Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */) // _HID: Hardware ID } Device (BAT1) { Name (CBTI, Zero) Name (PBTI, Zero) Name (BTIN, Zero) Name (BTCH, Zero) Name (BIFI, Zero) Name (SEL0, Zero) Name (BCRI, Zero) Name (PBIF, Package (0x0D) { One, 0x1130, 0x1130, One, 0x2B5C, 0x012C, 0x84, 0x20, 0x20, "BAT1 ", "11 ", "11 ", "11 " }) Name (PBST, Package (0x04) { Zero, Ones, Ones, 0x2710 }) Name (ERRC, Zero) Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID Name (_UID, Zero) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { P80H = 0x11 If (BTIN) { Return (0x1F) } Else { Return (0x0F) } } Method (_BIF, 0, NotSerialized) // _BIF: Battery Information { P80H = 0x12 If (BIFI == Zero) { UBIF () BIFI = One } Return (PBIF) /* \_SB_.BAT1.PBIF */ } Name (LFCC, 0x1130) Method (UBIF, 0, NotSerialized) { If (ECON) { P80H = 0x13 Local0 = ^^PCI0.LPC.EC0.BTDC /* \_SB_.PCI0.LPC_.EC0_.BTDC */ Local1 = ^^PCI0.LPC.EC0.LFC2 /* \_SB_.PCI0.LPC_.EC0_.LFC2 */ Local2 = ^^PCI0.LPC.EC0.BTDV /* \_SB_.PCI0.LPC_.EC0_.BTDV */ Local3 = ^^PCI0.LPC.EC0.BTMD /* \_SB_.PCI0.LPC_.EC0_.BTMD */ Local4 = ^^PCI0.LPC.EC0.BTMN /* \_SB_.PCI0.LPC_.EC0_.BTMN */ Local5 = ^^PCI0.LPC.EC0.BTSN /* \_SB_.PCI0.LPC_.EC0_.BTSN */ Local6 = ^^PCI0.LPC.EC0.LION /* \_SB_.PCI0.LPC_.EC0_.LION */ PBIF [One] = Local0 PBIF [0x02] = Local1 PBIF [0x04] = Local2 LFCC = Local1 Local7 = (Local1 * 0x04) Local7 /= 0x64 PBIF [0x06] = Local7 If (Local6) { PBIF [0x0B] = "NiMH" } Else { PBIF [0x0B] = "LION" } Local3 &= 0x0F If (Local3 == One) { PBIF [0x09] = "UM08A31" } ElseIf (Local3 == 0x02) { PBIF [0x09] = "UM08A32" } ElseIf (Local3 == 0x03) { PBIF [0x09] = "UM08A51" } ElseIf (Local3 == 0x04) { PBIF [0x09] = "UM08A52" } ElseIf (Local3 == 0x05) { PBIF [0x09] = "UM08A71" } ElseIf (Local3 == 0x06) { PBIF [0x09] = "UM08A72" } ElseIf (Local3 == 0x07) { PBIF [0x09] = "UM08A73" } ElseIf (Local3 == 0x08) { PBIF [0x09] = "UM08A74" } ElseIf (Local3 == 0x09) { PBIF [0x09] = "UM08B51" } ElseIf (Local3 == 0x0A) { PBIF [0x09] = "UM08B71" } ElseIf (Local3 == 0x0B) { PBIF [0x09] = "UM08B72" } ElseIf (Local3 == 0x0C) { PBIF [0x09] = "UM08B73" } ElseIf (Local3 == 0x0D) { PBIF [0x09] = "UM08B74" } ElseIf (Local3 == 0x0E) { PBIF [0x09] = "UM08AC1" } If (Local4 == 0x03) { PBIF [0x0C] = "SANYO" } ElseIf (Local4 == 0x04) { PBIF [0x0C] = "SONY" } ElseIf (Local4 == 0x05) { PBIF [0x0C] = "PANASONIC" } ElseIf (Local4 == 0x07) { PBIF [0x0C] = "SIMPLO" } ElseIf (Local4 == 0x08) { PBIF [0x0C] = "MOTOROLA" } ElseIf (Local4 == 0x09) { PBIF [0x0C] = "Celxpert" } Else { PBIF [0x0C] = "UNKNOWN" } PBIF [0x0A] = ITOS (Local5) } } Name (RCAP, Zero) Method (_BST, 0, NotSerialized) // _BST: Battery Status { P80H = 0x14 If (BTIN == Zero) { PBST [Zero] = Zero PBST [One] = Ones PBST [0x02] = Ones PBST [0x03] = Ones Return (PBST) /* \_SB_.BAT1.PBST */ } If (ECON) { Local0 = ^^PCI0.LPC.EC0.MBTC /* \_SB_.PCI0.LPC_.EC0_.MBTC */ Local1 = ^^PCI0.LPC.EC0.MBRM /* \_SB_.PCI0.LPC_.EC0_.MBRM */ Local2 = ^^PCI0.LPC.EC0.MBVG /* \_SB_.PCI0.LPC_.EC0_.MBVG */ Local3 = ^^PCI0.LPC.EC0.MCUR /* \_SB_.PCI0.LPC_.EC0_.MCUR */ Local4 = ^^PCI0.LPC.EC0.BTST /* \_SB_.PCI0.LPC_.EC0_.BTST */ Local5 = ^^PCI0.LPC.EC0.MBTF /* \_SB_.PCI0.LPC_.EC0_.MBTF */ Local6 = ^^PCI0.LPC.EC0.ACDF /* \_SB_.PCI0.LPC_.EC0_.ACDF */ If (Local6) { If (Local5 == One) { Local7 = Zero Local1 = LFCC /* \_SB_.BAT1.LFCC */ } ElseIf (Local0 == One) { Local7 = 0x02 } Else { Local7 = Zero } } ElseIf (Local4 && One) { Local7 = One } Else { Local7 = Zero } Local4 &= 0x04 If (Local4 == 0x04) { Local7 |= Local4 } PBST [Zero] = Local7 If (!(Local1 & 0x8000)) { PBST [0x02] = Local1 } If (!(Local2 & 0x8000)) { PBST [0x03] = Local2 } If (Local3 && 0x8000) { If (Local3 != 0xFFFF) { Local3 = ~Local3 Local3++ Local3 &= 0xFFFF } } PBST [One] = Local3 } Return (PBST) /* \_SB_.BAT1.PBST */ } Method (ITOS, 1, NotSerialized) { Local0 = "" Local1 = 0x04 While (Local1) { Local1-- Local4 = ((Arg0 >> (Local1 << 0x02)) & 0x0F) Local2 = DerefOf (CHAR [Local4]) Concatenate (Local0, Local2, Local5) Local0 = Local5 } Return (Local0) } Name (CHAR, Package (0x10) { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" }) Method (BATS, 0, NotSerialized) { If (ECON) { P80H = 0x15 Local0 = ^^PCI0.LPC.EC0.MBTS /* \_SB_.PCI0.LPC_.EC0_.MBTS */ If (Local0 == One) { If (BTIN == Zero) { BTCH = One BIFI = Zero } BTIN = One } Else { If (BTIN == One) { BTCH = One BIFI = Zero } BTIN = Zero } } } } Device (ACAD) { Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID Name (_PCL, Package (0x01) // _PCL: Power Consumer List { _SB }) Name (ACST, Zero) Method (_PSR, 0, NotSerialized) // _PSR: Power Source { If (ECON) { P80H = 0x16 ACST = ^^PCI0.LPC.EC0.ACDF /* \_SB_.PCI0.LPC_.EC0_.ACDF */ } Else { ACST = One } If (ACST) { Local0 = One ^^BAT1.BCRI = Zero } Else { Local0 = Zero } Return (Local0) } } Device (PCI0) { Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID Name (_ADR, Zero) // _ADR: Address Method (_INI, 0, NotSerialized) // _INI: Initialize { P80H = 0x12 If (CondRefOf (_OSI, Local0)) { If (_OSI ("Linux")) { OSYS = 0x03E8 ^LPC.S4TM = 0x0A ^EXP2.PXS2.LSMP = 0x43 ^EXP2.LL0S = One ^EXP2.LLL1 = One } ElseIf (_OSI ("Windows 2006")) { OSYS = 0x07D6 ^LPC.S4TM = 0x06 ^EXP2.PXS2.LSMP = Zero ^EXP2.LL0S = Zero ^EXP2.LLL1 = Zero } Else { ^LPC.S4TM = 0x0A ^EXP2.PXS2.LSMP = 0x43 ^EXP2.LL0S = One ^EXP2.LLL1 = One OSYS = 0x07D1 } } Else { ^LPC.S4TM = 0x0A ^EXP2.PXS2.LSMP = 0x43 ^EXP2.LL0S = One ^EXP2.LLL1 = One OSYS = 0x07D0 } } Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities { Local0 = Arg2 Local1 = (Local0 * 0x04) Name (BUF1, Buffer (Local1) {}) BUF1 = Arg3 Local1 = Zero Local2 = Zero While (Local0) { Local2 = (Local1 * 0x04) CreateDWordField (BUF1, Local2, CAPB) If (Arg1) { If (Local1 == Zero) { CAPB &= 0xFFFFFFFC } } Else { } Local1++ Local0-- } Return (BUF1) /* \_SB_.PCI0._OSC.BUF1 */ } Name (_BBN, Zero) // _BBN: BIOS Bus Number OperationRegion (HBUS, PCI_Config, 0x40, 0xC0) Field (HBUS, DWordAcc, NoLock, Preserve) { Offset (0x50), , 4, PM0H, 2, Offset (0x51), PM1L, 2, , 2, PM1H, 2, Offset (0x52), PM2L, 2, , 2, PM2H, 2, Offset (0x53), PM3L, 2, , 2, PM3H, 2, Offset (0x54), PM4L, 2, , 2, PM4H, 2, Offset (0x55), PM5L, 2, , 2, PM5H, 2, Offset (0x56), PM6L, 2, , 2, PM6H, 2, Offset (0x57), , 7, HENA, 1, Offset (0x5C), , 3, TOUD, 5 } Name (BUF0, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, // Granularity 0x0000, // Range Minimum 0x00FF, // Range Maximum 0x0000, // Translation Offset 0x0100, // Length 0x00,, ) DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x00000000, // Granularity 0x00000000, // Range Minimum 0x00000CF7, // Range Maximum 0x00000000, // Translation Offset 0x00000CF8, // Length 0x00,, , TypeStatic) IO (Decode16, 0x0CF8, // Range Minimum 0x0CF8, // Range Maximum 0x01, // Alignment 0x08, // Length ) DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x00000000, // Granularity 0x00000D00, // Range Minimum 0x0000FFFF, // Range Maximum 0x00000000, // Translation Offset 0x0000F300, // Length 0x00,, , TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000A0000, // Range Minimum 0x000BFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00020000, // Length 0x00,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C0000, // Range Minimum 0x000C3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y00, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C4000, // Range Minimum 0x000C7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y01, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C8000, // Range Minimum 0x000CBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y02, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000CC000, // Range Minimum 0x000CFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y03, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D0000, // Range Minimum 0x000D3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y04, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D4000, // Range Minimum 0x000D7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y05, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D8000, // Range Minimum 0x000DBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y06, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000DC000, // Range Minimum 0x000DFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y07, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E0000, // Range Minimum 0x000E3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y08, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E4000, // Range Minimum 0x000E7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y09, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E8000, // Range Minimum 0x000EBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y0A, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000EC000, // Range Minimum 0x000EFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y0B, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000F0000, // Range Minimum 0x000FFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00010000, // Length 0x00,, _Y0C, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x00000000, // Range Minimum 0xFEBFFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00000000, // Length 0x00,, _Y0D, AddressRangeMemory, TypeStatic) }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { If (PM1L) { CreateDWordField (BUF0, \_SB.PCI0._Y00._LEN, C0LN) // _LEN: Length C0LN = Zero } If (PM1L == One) { CreateBitField (BUF0, \_SB.PCI0._Y00._RW, C0RW) // _RW_: Read-Write Status C0RW = Zero } If (PM1H) { CreateDWordField (BUF0, \_SB.PCI0._Y01._LEN, C4LN) // _LEN: Length C4LN = Zero } If (PM1H == One) { CreateBitField (BUF0, \_SB.PCI0._Y01._RW, C4RW) // _RW_: Read-Write Status C4RW = Zero } If (PM2L) { CreateDWordField (BUF0, \_SB.PCI0._Y02._LEN, C8LN) // _LEN: Length C8LN = Zero } If (PM2L == One) { CreateBitField (BUF0, \_SB.PCI0._Y02._RW, C8RW) // _RW_: Read-Write Status C8RW = Zero } If (PM2H) { CreateDWordField (BUF0, \_SB.PCI0._Y03._LEN, CCLN) // _LEN: Length CCLN = Zero } If (PM2H == One) { CreateBitField (BUF0, \_SB.PCI0._Y03._RW, CCRW) // _RW_: Read-Write Status CCRW = Zero } If (PM3L) { CreateDWordField (BUF0, \_SB.PCI0._Y04._LEN, D0LN) // _LEN: Length D0LN = Zero } If (PM3L == One) { CreateBitField (BUF0, \_SB.PCI0._Y04._RW, D0RW) // _RW_: Read-Write Status D0RW = Zero } If (PM3H) { CreateDWordField (BUF0, \_SB.PCI0._Y05._LEN, D4LN) // _LEN: Length D4LN = Zero } If (PM3H == One) { CreateBitField (BUF0, \_SB.PCI0._Y05._RW, D4RW) // _RW_: Read-Write Status D4RW = Zero } If (PM4L) { CreateDWordField (BUF0, \_SB.PCI0._Y06._LEN, D8LN) // _LEN: Length D8LN = Zero } If (PM4L == One) { CreateBitField (BUF0, \_SB.PCI0._Y06._RW, D8RW) // _RW_: Read-Write Status D8RW = Zero } If (PM4H) { CreateDWordField (BUF0, \_SB.PCI0._Y07._LEN, DCLN) // _LEN: Length DCLN = Zero } If (PM4H == One) { CreateBitField (BUF0, \_SB.PCI0._Y07._RW, DCRW) // _RW_: Read-Write Status DCRW = Zero } If (PM5L) { CreateDWordField (BUF0, \_SB.PCI0._Y08._LEN, E0LN) // _LEN: Length E0LN = Zero } If (PM5L == One) { CreateBitField (BUF0, \_SB.PCI0._Y08._RW, E0RW) // _RW_: Read-Write Status E0RW = Zero } If (PM5H) { CreateDWordField (BUF0, \_SB.PCI0._Y09._LEN, E4LN) // _LEN: Length E4LN = Zero } If (PM5H == One) { CreateBitField (BUF0, \_SB.PCI0._Y09._RW, E4RW) // _RW_: Read-Write Status E4RW = Zero } If (PM6L) { CreateDWordField (BUF0, \_SB.PCI0._Y0A._LEN, E8LN) // _LEN: Length E8LN = Zero } If (PM6L == One) { CreateBitField (BUF0, \_SB.PCI0._Y0A._RW, E8RW) // _RW_: Read-Write Status E8RW = Zero } If (PM6H) { CreateDWordField (BUF0, \_SB.PCI0._Y0B._LEN, ECLN) // _LEN: Length ECLN = Zero } If (PM6H == One) { CreateBitField (BUF0, \_SB.PCI0._Y0B._RW, ECRW) // _RW_: Read-Write Status ECRW = Zero } If (PM0H) { CreateDWordField (BUF0, \_SB.PCI0._Y0C._LEN, F0LN) // _LEN: Length F0LN = Zero } If (PM0H == One) { CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, F0RW) // _RW_: Read-Write Status F0RW = Zero } CreateDWordField (BUF0, \_SB.PCI0._Y0D._MIN, M1MN) // _MIN: Minimum Base Address CreateDWordField (BUF0, \_SB.PCI0._Y0D._MAX, M1MX) // _MAX: Maximum Base Address CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, M1LN) // _LEN: Length M1MN = (TOUD << 0x1B) M1LN = ((M1MX - M1MN) + One) Return (BUF0) /* \_SB_.PCI0.BUF0 */ } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC == Zero) { Return (Package (0x0F) { Package (0x04) { 0x0001FFFF, Zero, ^LPC.LNKA, Zero }, Package (0x04) { 0x0002FFFF, Zero, ^LPC.LNKA, Zero }, Package (0x04) { 0x001BFFFF, Zero, ^LPC.LNKG, Zero }, Package (0x04) { 0x001CFFFF, Zero, ^LPC.LNKA, Zero }, Package (0x04) { 0x001CFFFF, One, ^LPC.LNKB, Zero }, Package (0x04) { 0x001CFFFF, 0x02, ^LPC.LNKC, Zero }, Package (0x04) { 0x001CFFFF, 0x03, ^LPC.LNKD, Zero }, Package (0x04) { 0x001DFFFF, Zero, ^LPC.LNKA, Zero }, Package (0x04) { 0x001DFFFF, One, ^LPC.LNKB, Zero }, Package (0x04) { 0x001DFFFF, 0x02, ^LPC.LNKC, Zero }, Package (0x04) { 0x001DFFFF, 0x03, ^LPC.LNKD, Zero }, Package (0x04) { 0x001EFFFF, Zero, ^LPC.LNKA, Zero }, Package (0x04) { 0x001EFFFF, One, ^LPC.LNKB, Zero }, Package (0x04) { 0x001FFFFF, Zero, ^LPC.LNKA, Zero }, Package (0x04) { 0x001FFFFF, One, ^LPC.LNKB, Zero } }) } Else { Return (Package (0x0F) { Package (0x04) { 0x0001FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0002FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001BFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001CFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001CFFFF, One, Zero, 0x11 }, Package (0x04) { 0x001CFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001CFFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x001DFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001DFFFF, One, Zero, 0x11 }, Package (0x04) { 0x001DFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001DFFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x001EFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001EFFFF, One, Zero, 0x11 }, Package (0x04) { 0x001FFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001FFFFF, One, Zero, 0x11 } }) } } Device (P32) { Name (_ADR, 0x001E0000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (WKPM == One) { Return (Package (0x02) { 0x0B, 0x04 }) } Else { Return (Package (0x02) { 0x0B, Zero }) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC == Zero) { Return (Package (0x09) { Package (0x04) { 0x0002FFFF, Zero, ^^LPC.LNKC, Zero }, Package (0x04) { 0x0002FFFF, One, ^^LPC.LNKD, Zero }, Package (0x04) { 0x0002FFFF, 0x02, ^^LPC.LNKB, Zero }, Package (0x04) { 0x0002FFFF, 0x03, ^^LPC.LNKA, Zero }, Package (0x04) { 0x0003FFFF, Zero, ^^LPC.LNKD, Zero }, Package (0x04) { 0x0003FFFF, One, ^^LPC.LNKC, Zero }, Package (0x04) { 0x0003FFFF, 0x02, ^^LPC.LNKF, Zero }, Package (0x04) { 0x0003FFFF, 0x03, ^^LPC.LNKG, Zero }, Package (0x04) { 0x0008FFFF, Zero, ^^LPC.LNKE, Zero } }) } Else { Return (Package (0x09) { Package (0x04) { 0x0002FFFF, Zero, Zero, 0x12 }, Package (0x04) { 0x0002FFFF, One, Zero, 0x13 }, Package (0x04) { 0x0002FFFF, 0x02, Zero, 0x11 }, Package (0x04) { 0x0002FFFF, 0x03, Zero, 0x10 }, Package (0x04) { 0x0003FFFF, Zero, Zero, 0x13 }, Package (0x04) { 0x0003FFFF, One, Zero, 0x12 }, Package (0x04) { 0x0003FFFF, 0x02, Zero, 0x15 }, Package (0x04) { 0x0003FFFF, 0x03, Zero, 0x16 }, Package (0x04) { 0x0008FFFF, Zero, Zero, 0x14 } }) } } } Device (LPC) { Name (_ADR, 0x001F0000) // _ADR: Address OperationRegion (PRR0, PCI_Config, 0x60, 0x04) Field (PRR0, AnyAcc, NoLock, Preserve) { PIRA, 8, PIRB, 8, PIRC, 8, PIRD, 8 } OperationRegion (PRR1, PCI_Config, 0x68, 0x04) Field (PRR1, AnyAcc, NoLock, Preserve) { PIRE, 8, PIRF, 8, PIRG, 8, PIRH, 8 } OperationRegion (PRR2, PCI_Config, 0x80, 0x02) Field (PRR2, AnyAcc, NoLock, Preserve) { IODL, 8, IODH, 8 } OperationRegion (BRKE, PCI_Config, 0xAA, 0x02) Field (BRKE, AnyAcc, NoLock, Preserve) { S4TM, 8, PCEE, 8 } Device (LNKA) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRA & 0x80) { Return (0x09) } Else { Return (0x0B) } } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRA |= 0x80 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {0} }) CreateWordField (BUF0, One, IRQW) If (PIRA & 0x80) { Local0 = Zero } Else { Local0 = One } IRQW = (Local0 << (PIRA & 0x0F)) Return (BUF0) /* \_SB_.PCI0.LPC_.LNKA._CRS.BUF0 */ } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12} }) Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQW) FindSetRightBit (IRQW, Local0) If (IRQW != Zero) { Local0 &= 0x7F Local0-- } Else { Local0 |= 0x80 } PIRA = Local0 } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRB & 0x80) { Return (0x09) } Else { Return (0x0B) } } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRB |= 0x80 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {0} }) CreateWordField (BUF0, One, IRQW) If (PIRB & 0x80) { Local0 = Zero } Else { Local0 = One } IRQW = (Local0 << (PIRB & 0x0F)) Return (BUF0) /* \_SB_.PCI0.LPC_.LNKB._CRS.BUF0 */ } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12} }) Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQW) FindSetRightBit (IRQW, Local0) If (IRQW != Zero) { Local0 &= 0x7F Local0-- } Else { Local0 |= 0x80 } PIRB = Local0 } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x03) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRC & 0x80) { Return (0x09) } Else { Return (0x0B) } } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRC |= 0x80 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {0} }) CreateWordField (BUF0, One, IRQW) If (PIRC & 0x80) { Local0 = Zero } Else { Local0 = One } IRQW = (Local0 << (PIRC & 0x0F)) Return (BUF0) /* \_SB_.PCI0.LPC_.LNKC._CRS.BUF0 */ } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12} }) Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQW) FindSetRightBit (IRQW, Local0) If (IRQW != Zero) { Local0 &= 0x7F Local0-- } Else { Local0 |= 0x80 } PIRC = Local0 } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x04) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRD & 0x80) { Return (0x09) } Else { Return (0x0B) } } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRD |= 0x80 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {0} }) CreateWordField (BUF0, One, IRQW) If (PIRD & 0x80) { Local0 = Zero } Else { Local0 = One } IRQW = (Local0 << (PIRD & 0x0F)) Return (BUF0) /* \_SB_.PCI0.LPC_.LNKD._CRS.BUF0 */ } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12} }) Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQW) FindSetRightBit (IRQW, Local0) If (IRQW != Zero) { Local0 &= 0x7F Local0-- } Else { Local0 |= 0x80 } PIRD = Local0 } } Device (LNKE) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x05) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRE & 0x80) { Return (0x09) } Else { Return (0x0B) } } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRE |= 0x80 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {0} }) CreateWordField (BUF0, One, IRQW) If (PIRE & 0x80) { Local0 = Zero } Else { Local0 = One } IRQW = (Local0 << (PIRE & 0x0F)) Return (BUF0) /* \_SB_.PCI0.LPC_.LNKE._CRS.BUF0 */ } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12} }) Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQW) FindSetRightBit (IRQW, Local0) If (IRQW != Zero) { Local0 &= 0x7F Local0-- } Else { Local0 |= 0x80 } PIRE = Local0 } } Device (LNKF) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x06) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRF & 0x80) { Return (0x09) } Else { Return (0x0B) } } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRF |= 0x80 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {0} }) CreateWordField (BUF0, One, IRQW) If (PIRF & 0x80) { Local0 = Zero } Else { Local0 = One } IRQW = (Local0 << (PIRF & 0x0F)) Return (BUF0) /* \_SB_.PCI0.LPC_.LNKF._CRS.BUF0 */ } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12} }) Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQW) FindSetRightBit (IRQW, Local0) If (IRQW != Zero) { Local0 &= 0x7F Local0-- } Else { Local0 |= 0x80 } PIRF = Local0 } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x07) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRG & 0x80) { Return (0x09) } Else { Return (0x0B) } } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRG |= 0x80 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {0} }) CreateWordField (BUF0, One, IRQW) If (PIRG & 0x80) { Local0 = Zero } Else { Local0 = One } IRQW = (Local0 << (PIRG & 0x0F)) Return (BUF0) /* \_SB_.PCI0.LPC_.LNKG._CRS.BUF0 */ } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12} }) Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQW) FindSetRightBit (IRQW, Local0) If (IRQW != Zero) { Local0 &= 0x7F Local0-- } Else { Local0 |= 0x80 } PIRG = Local0 } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x08) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRH & 0x80) { Return (0x09) } Else { Return (0x0B) } } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRH |= 0x80 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {0} }) CreateWordField (BUF0, One, IRQW) If (PIRH & 0x80) { Local0 = Zero } Else { Local0 = One } IRQW = (Local0 << (PIRH & 0x0F)) Return (BUF0) /* \_SB_.PCI0.LPC_.LNKH._CRS.BUF0 */ } Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12} }) Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRQW) FindSetRightBit (IRQW, Local0) If (IRQW != Zero) { Local0 &= 0x7F Local0-- } Else { Local0 |= 0x80 } PIRH = Local0 } } Device (SYSR) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x002E, // Range Minimum 0x002E, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0068, // Range Minimum 0x0068, // Range Maximum 0x01, // Alignment 0x08, // Length ) IO (Decode16, 0x0200, // Range Minimum 0x0200, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x164E, // Range Minimum 0x164E, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0061, // Range Minimum 0x0061, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0080, // Range Minimum 0x0080, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0092, // Range Minimum 0x0092, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x00B2, // Range Minimum 0x00B2, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0063, // Range Minimum 0x0063, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0065, // Range Minimum 0x0065, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0067, // Range Minimum 0x0067, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0600, // Range Minimum 0x0600, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x0610, // Range Minimum 0x0610, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0800, // Range Minimum 0x0800, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x0400, // Range Minimum 0x0400, // Range Maximum 0x01, // Alignment 0x80, // Length ) IO (Decode16, 0x0500, // Range Minimum 0x0500, // Range Maximum 0x01, // Alignment 0x40, // Length ) Memory32Fixed (ReadWrite, 0xE0000000, // Address Base 0x10000000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED1C000, // Address Base 0x00004000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED14000, // Address Base 0x00004000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED18000, // Address Base 0x00001000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED19000, // Address Base 0x00001000, // Address Length ) Memory32Fixed (ReadWrite, 0xFEC00000, // Address Base 0x00001000, // Address Length ) Memory32Fixed (ReadWrite, 0xFEE00000, // Address Base 0x00001000, // Address Length ) }) } 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 0x20, // Length ) IO (Decode16, 0x0081, // Range Minimum 0x0081, // Range Maximum 0x01, // Alignment 0x11, // Length ) IO (Decode16, 0x0093, // Range Minimum 0x0093, // Range Maximum 0x01, // Alignment 0x0D, // Length ) IO (Decode16, 0x00C0, // Range Minimum 0x00C0, // Range Maximum 0x01, // Alignment 0x20, // Length ) DMA (Compatibility, NotBusMaster, Transfer8_16, ) {4} }) } Device (RTC) { Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID Name (BUF0, ResourceTemplate () { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x08, // Length ) }) Name (BUF1, ResourceTemplate () { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {8} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { If (HPTS == One) { Return (BUF0) /* \_SB_.PCI0.LPC_.RTC_.BUF0 */ } Else { Return (BUF1) /* \_SB_.PCI0.LPC_.RTC_.BUF1 */ } } } Device (HPET) { Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID Name (BUF0, ResourceTemplate () { IRQNoFlags () {0} IRQNoFlags () {8} Memory32Fixed (ReadOnly, 0xFED00000, // Address Base 0x00000400, // Address Length _Y0E) }) Method (_STA, 0, NotSerialized) // _STA: Status { If (OSYS >= 0x07D1) { If (HPTS == One) { Return (0x0F) } Else { Return (Zero) } } ElseIf (HPTS) { Return (0x0B) } Else { Return (Zero) } } Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { If (HPTS == One) { CreateDWordField (BUF0, \_SB.PCI0.LPC.HPET._Y0E._BAS, HPT0) // _BAS: Base Address If (HPTA == One) { HPT0 = 0xFED01000 } If (HPTA == 0x02) { HPT0 = 0xFED02000 } If (HPTA == 0x03) { HPT0 = 0xFED03000 } } Return (BUF0) /* \_SB_.PCI0.LPC_.HPET.BUF0 */ } } Device (PIC) { Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0020, // Range Minimum 0x0020, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0024, // Range Minimum 0x0024, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0028, // Range Minimum 0x0028, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x002C, // Range Minimum 0x002C, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0030, // Range Minimum 0x0030, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0034, // Range Minimum 0x0034, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0038, // Range Minimum 0x0038, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x003C, // Range Minimum 0x003C, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A0, // Range Minimum 0x00A0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A4, // Range Minimum 0x00A4, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A8, // Range Minimum 0x00A8, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00AC, // Range Minimum 0x00AC, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00B0, // Range Minimum 0x00B0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00B4, // Range Minimum 0x00B4, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00B8, // Range Minimum 0x00B8, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00BC, // Range Minimum 0x00BC, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x04D0, // Range Minimum 0x04D0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IRQNoFlags () {2} }) } Device (FPU) { 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 0x01, // Length ) IRQNoFlags () {13} }) } Device (TIMR) { Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID Name (BUF0, ResourceTemplate () { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x01, // Alignment 0x04, // Length ) IO (Decode16, 0x0050, // Range Minimum 0x0050, // Range Maximum 0x10, // Alignment 0x04, // Length ) }) Name (BUF1, ResourceTemplate () { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x01, // Alignment 0x04, // Length ) IO (Decode16, 0x0050, // Range Minimum 0x0050, // Range Maximum 0x10, // Alignment 0x04, // Length ) IRQNoFlags () {0} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { If (HPTS) { Return (BUF0) /* \_SB_.PCI0.LPC_.TIMR.BUF0 */ } Return (BUF1) /* \_SB_.PCI0.LPC_.TIMR.BUF1 */ } } Device (FWHD) { Name (_HID, EisaId ("INT0800") /* Intel 82802 Firmware Hub Device */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { Memory32Fixed (ReadOnly, 0xFF800000, // Address Base 0x00800000, // Address Length ) }) } Device (KBC) { Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0060, // Range Minimum 0x0060, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0064, // Range Minimum 0x0064, // Range Maximum 0x01, // Alignment 0x01, // Length ) IRQ (Edge, ActiveHigh, Exclusive, ) {1} }) Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } } Device (MOUE) { Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IRQ (Edge, ActiveHigh, Exclusive, ) {12} }) Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } } Device (EC0) { Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware 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, 0x17) // _GPE: General Purpose Events Name (SEL0, 0xF0) Name (BFLG, Zero) Method (_REG, 2, NotSerialized) // _REG: Region Availability { P80H = 0x17 If (Arg0 == 0x03) { Local0 = Arg1 If (Local0) { ECON = One } Else { ECON = Zero } } If (ECON) { P80H = 0x18 RG59 = 0x03 CPLE = One } } OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF) Field (ERAM, ByteAcc, NoLock, Preserve) { Offset (0x04), CMCM, 8, CMD1, 8, CMD2, 8, CMD3, 8, Offset (0x18), SMPR, 8, SMST, 8, SMAD, 8, SMCM, 8, SMD0, 256, BCNT, 8, SMAA, 8, BATD, 16, ACDF, 1, Offset (0x41), , 5, FLS4, 1, Offset (0x42), Offset (0x4C), ARCD, 1, , 3, DOCK, 1, LANC, 1, LID2, 1, CRTS, 1, Offset (0x51), BLVL, 8, Offset (0x53), DOFF, 8, Offset (0x58), CTMP, 8, RG59, 8, Offset (0x60), WLAN, 1, BLTH, 1, CPLE, 1, , 3, WLST, 1, BLTS, 1, , 2, ST3G, 1, MNST, 1, , 1, ED3G, 1, , 3, Offset (0x63), TJ85, 1, , 6, VGAF, 1, Offset (0x70), BTMD, 8, MBTS, 1, MBTF, 1, BATF, 1, , 3, MBDX, 1, MBAD, 1, MBTC, 1, , 2, LION, 1, Offset (0x77), BA1C, 8, MCYC, 16, MTMP, 16, MDAT, 16, MCUR, 16, MBRM, 16, MBVG, 16, MRTF, 16, MMER, 8, BA2C, 8, LFC2, 16, BTSN, 16, BTDC, 16, BTDV, 16, BTMN, 8, Offset (0x93), BTST, 8, Offset (0x9D), OSTP, 1, Offset (0xA0), ABMD, 8, ABTS, 1, ABFC, 1, , 4, ABDX, 1, ABAD, 1, ABCG, 1, , 2, ABTP, 1, Offset (0xA8), ACYC, 16, ATMP, 16, ADAT, 16, ABCR, 16, ABRM, 16, ABVG, 16, ARTF, 16, AMER, 8, Offset (0xB8), AFCC, 16, ABSN, 16, ABDC, 16, ABDV, 16, ABMN, 8, Offset (0xD0), EBPL, 1, Offset (0xD1), PWRE, 1, Offset (0xD2), , 6, VAUX, 1, Offset (0xD6), DBPL, 8, Offset (0xE0), DESP, 8, DTS3, 8, DE0L, 8, DE0H, 8, DE1L, 8, DE1H, 8, DE2L, 8, DE2H, 8, DE3L, 8, DE3H, 8, DE4L, 8, DE4H, 8 } Method (APOL, 1, NotSerialized) { P80H = 0x19 DBPL = Arg0 EBPL = One } Method (CPOL, 1, NotSerialized) { P80H = 0x1A If (PSTA == Zero) { If (ECON != Zero) { APOL (Arg0) PSTA = One } } } Method (_Q20, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x20 If (ECON) { If (SMST & 0x40) { Local0 = SMAA /* \_SB_.PCI0.LPC_.EC0_.SMAA */ If (Local0 == 0x14) { SMST &= 0xBF Local1 = PWRE /* \_SB_.PCI0.LPC_.EC0_.PWRE */ If (Local1) { PWRE = Zero BFLG = 0x12 CPOL (One) } } If (Local0 == 0x16) { SMST &= 0xBF ^^^^BAT1.BCRI = 0x04 Notify (BAT1, 0x80) // Status Change } Else { ^^^^BAT1.BCRI = Zero } } } } Method (_Q09, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x09 If (ECON) { P80H = 0x1B PSTA = Zero ^^^^BAT1.BATS () Notify (ACAD, 0x80) // Status Change Sleep (0x01F4) Notify (BAT1, 0x80) // Status Change If (^^^^BAT1.BTCH) { P80H = 0x1C ^^^^BAT1.UBIF () Notify (BAT1, 0x81) // Information Change ^^^^BAT1.BTCH = Zero } } } Method (_Q9B, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x9B Sleep (0x32) Notify (LID0, 0x80) // Status Change } } } Device (UHC1) { Name (_ADR, 0x001D0000) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x03, 0x03 }) OperationRegion (USBR, PCI_Config, 0xC4, One) Field (USBR, AnyAcc, NoLock, Preserve) { URES, 8 } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0 == Zero) { URES = Zero } If (Arg0 == One) { URES = 0x03 } } } Device (UHC2) { Name (_ADR, 0x001D0001) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x04, 0x03 }) OperationRegion (USBR, PCI_Config, 0xC4, One) Field (USBR, AnyAcc, NoLock, Preserve) { URES, 8 } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0 == Zero) { URES = Zero } If (Arg0 == One) { URES = 0x03 } } } Device (UHC3) { Name (_ADR, 0x001D0002) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x0C, 0x03 }) OperationRegion (USBR, PCI_Config, 0xC4, One) Field (USBR, AnyAcc, NoLock, Preserve) { URES, 8 } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0 == Zero) { URES = Zero } If (Arg0 == One) { URES = 0x03 } } } Device (UHC4) { Name (_ADR, 0x001D0003) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x0E, 0x03 }) OperationRegion (USBR, PCI_Config, 0xC4, One) Field (USBR, AnyAcc, NoLock, Preserve) { URES, 8 } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0 == Zero) { URES = Zero } If (Arg0 == One) { URES = 0x03 } } } Device (ECHI) { Name (_ADR, 0x001D0007) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x0D, 0x03 }) OperationRegion (USBR, PCI_Config, 0xC4, One) Field (USBR, AnyAcc, NoLock, Preserve) { URES, 8 } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0 == Zero) { URES = Zero } If (Arg0 == One) { URES = 0x03 } } } Device (EXP1) { Name (_ADR, 0x001C0000) // _ADR: Address OperationRegion (P1CS, PCI_Config, 0x40, 0x0100) Field (P1CS, AnyAcc, NoLock, Preserve) { Offset (0x10), , 4, LKD1, 1, Offset (0x1A), ABP1, 1, , 2, PDC1, 1, , 2, PDS1, 1, Offset (0x20), RID1, 16, PSP1, 1, PPP1, 1, Offset (0x9C), , 30, HPCS, 1, PMCS, 1 } Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x09, 0x04 }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC == Zero) { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, ^^LPC.LNKA, Zero }, Package (0x04) { 0xFFFF, One, ^^LPC.LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, ^^LPC.LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, ^^LPC.LNKD, Zero } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) } } Device (J380) { Name (_ADR, Zero) // _ADR: Address OperationRegion (PCFG, PCI_Config, Zero, 0xFF) Field (PCFG, ByteAcc, NoLock, Preserve) { DVID, 32, Offset (0x2C), SSID, 32, Offset (0xAC), D3EF, 8, Offset (0xB2), LAT0, 8, Offset (0xCF), ATRB, 8, Offset (0xD3), PMC0, 8 } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } Device (J382) { Name (_ADR, 0x02) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } Device (J383) { Name (_ADR, 0x03) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } Device (J384) { Name (_ADR, 0x04) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } } Device (EXP2) { Name (_ADR, 0x001C0001) // _ADR: Address OperationRegion (P2CS, PCI_Config, 0x40, 0x0100) Field (P2CS, AnyAcc, NoLock, Preserve) { Offset (0x10), LL0S, 1, LLL1, 1, , 2, LKD2, 1, Offset (0x1A), ABP2, 1, , 2, PDC2, 1, , 2, PDS2, 1, Offset (0x20), RID2, 16, PSP2, 1, PPP2, 1, Offset (0x9C), , 30, HPCS, 1, PMCS, 1 } Device (PXS2) { Name (_ADR, Zero) // _ADR: Address OperationRegion (P2CS, PCI_Config, 0x80, 0x0100) Field (P2CS, AnyAcc, NoLock, Preserve) { LSMP, 8 } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } } Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x09, 0x04 }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC == Zero) { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, ^^LPC.LNKB, Zero }, Package (0x04) { 0xFFFF, One, ^^LPC.LNKC, Zero }, Package (0x04) { 0xFFFF, 0x02, ^^LPC.LNKD, Zero }, Package (0x04) { 0xFFFF, 0x03, ^^LPC.LNKA, Zero } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0xFFFF, One, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x10 } }) } } } Device (EXP3) { Name (_ADR, 0x001C0002) // _ADR: Address OperationRegion (P3CS, PCI_Config, 0x40, 0x0100) Field (P3CS, AnyAcc, NoLock, Preserve) { Offset (0x10), , 4, LKD3, 1, Offset (0x1A), ABP3, 1, , 2, PDC3, 1, , 2, PDS3, 1, Offset (0x20), RID3, 16, PSP3, 1, PPP3, 1, Offset (0x9C), , 30, HPCS, 1, PMCS, 1 } Device (PXS3) { Name (_ADR, Zero) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } } Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x09, 0x04 }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC == Zero) { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, ^^LPC.LNKC, Zero }, Package (0x04) { 0xFFFF, One, ^^LPC.LNKD, Zero }, Package (0x04) { 0xFFFF, 0x02, ^^LPC.LNKA, Zero }, Package (0x04) { 0xFFFF, 0x03, ^^LPC.LNKB, Zero } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x12 }, Package (0x04) { 0xFFFF, One, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x11 } }) } } } Device (EXP4) { Name (_ADR, 0x001C0003) // _ADR: Address OperationRegion (P4CS, PCI_Config, 0x40, 0x0100) Field (P4CS, AnyAcc, NoLock, Preserve) { Offset (0x10), , 4, LKD4, 1, Offset (0x1A), ABP4, 1, , 2, PDC4, 1, , 2, PDS4, 1, Offset (0x20), RID4, 16, PSP4, 1, PPP4, 1, Offset (0x9C), , 30, HPCS, 1, PMCS, 1 } Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x09, 0x04 }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC == Zero) { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, ^^LPC.LNKD, Zero }, Package (0x04) { 0xFFFF, One, ^^LPC.LNKA, Zero }, Package (0x04) { 0xFFFF, 0x02, ^^LPC.LNKB, Zero }, Package (0x04) { 0xFFFF, 0x03, ^^LPC.LNKC, Zero } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x13 }, Package (0x04) { 0xFFFF, One, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x12 } }) } } Device (J380) { Name (_ADR, Zero) // _ADR: Address OperationRegion (PCFG, PCI_Config, Zero, 0xFF) Field (PCFG, ByteAcc, NoLock, Preserve) { DVID, 32, Offset (0x2C), SSID, 32, Offset (0xAC), D3EF, 8, Offset (0xB2), LAT0, 8, Offset (0xCF), ATRB, 8, Offset (0xD3), PMC0, 8 } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } Device (J382) { Name (_ADR, 0x02) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } Device (J383) { Name (_ADR, 0x03) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } Device (J384) { Name (_ADR, 0x04) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } } Device (AZAL) { Name (_ADR, 0x001B0000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (WKMD == One) { Return (Package (0x02) { 0x05, 0x04 }) } Else { Return (Package (0x02) { 0x05, Zero }) } } } Device (AUDO) { Name (_ADR, 0x001E0002) // _ADR: Address } Device (MODM) { Name (_ADR, 0x001E0003) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If (WKMD == One) { Return (Package (0x02) { 0x05, 0x04 }) } Else { Return (Package (0x02) { 0x05, Zero }) } } } Device (OVGA) { Name (_ADR, 0x00020000) // _ADR: Address OperationRegion (VNVS, SystemMemory, 0x5F477010, 0x00010004) Field (VNVS, AnyAcc, Lock, Preserve) { RSIZ, 32, RBUF, 524288 } Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching { DSEN = (Arg0 & 0x03) } Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices { If (LCDA == 0x0110) { Return (Package (0x06) { 0x00010100, 0x00010110, 0x00010200, 0x00010300, 0x00010500, 0x00010600 }) } Return (Package (0x06) { 0x00010100, 0x00010200, 0x00010300, 0x00010400, 0x00010500, 0x00010600 }) } Method (_ROM, 2, NotSerialized) // _ROM: Read-Only Memory { Local0 = Arg0 Local1 = Arg1 If (Local1 > 0x1000) { Local1 = 0x1000 } If ((Local0 + Local1) > RSIZ) { Local0 = Zero } Local2 = (Local0 * 0x08) Local3 = (Local1 * 0x08) Name (ROM1, Buffer (RSIZ) {}) Name (ROM2, Buffer (Local1) {}) ROM1 = RBUF /* \_SB_.PCI0.OVGA.RBUF */ CreateField (ROM1, Local2, Local3, TMPB) ROM2 = TMPB /* \_SB_.PCI0.OVGA._ROM.TMPB */ Return (ROM2) /* \_SB_.PCI0.OVGA._ROM.ROM2 */ } Device (CRT1) { Name (_ADR, 0x0100) // _ADR: Address Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status { SMIF = One TRP0 = Zero If (CSTE & 0x0101) { Return (0x1F) } Return (0x1D) } Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State { If (NSTE & 0x0101) { Return (One) } Return (Zero) } Method (_DSS, 1, NotSerialized) // _DSS: Device Set State { If ((Arg0 & 0xC0000000) == 0xC0000000) { CSTE = NSTE /* \NSTE */ } } } Device (DTV1) { Name (_ADR, 0x0200) // _ADR: Address Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status { SMIF = One TRP0 = Zero If (CSTE & 0x0202) { Return (0x1F) } Return (0x1D) } Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State { If (NSTE & 0x0202) { Return (One) } Return (Zero) } Method (_DSS, 1, NotSerialized) // _DSS: Device Set State { If ((Arg0 & 0xC0000000) == 0xC0000000) { CSTE = NSTE /* \NSTE */ } } } Device (DFP1) { Name (_ADR, 0x0300) // _ADR: Address Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status { SMIF = One TRP0 = Zero If (CSTE & 0x0404) { Return (0x1F) } Return (0x1D) } Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State { If (NSTE & 0x0404) { Return (One) } Return (Zero) } Method (_DSS, 1, NotSerialized) // _DSS: Device Set State { If ((Arg0 & 0xC0000000) == 0xC0000000) { CSTE = NSTE /* \NSTE */ } } } Device (LCD) { Method (_ADR, 0, NotSerialized) // _ADR: Address { Return (LCDA) /* \LCDA */ } Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status { SMIF = One TRP0 = Zero If (CSTE & 0x0808) { Return (0x1F) } Return (0x1D) } Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State { If (NSTE & 0x0808) { Return (One) } Return (Zero) } Method (_DSS, 1, NotSerialized) // _DSS: Device Set State { If ((Arg0 & 0xC0000000) == 0xC0000000) { CSTE = NSTE /* \NSTE */ } } } Device (DTV2) { Name (_ADR, 0x0500) // _ADR: Address Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status { SMIF = One TRP0 = Zero If (CSTE & 0x1010) { Return (0x1F) } Return (0x1D) } Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State { If (NSTE & 0x1010) { Return (One) } Return (Zero) } Method (_DSS, 1, NotSerialized) // _DSS: Device Set State { If ((Arg0 & 0xC0000000) == 0xC0000000) { CSTE = NSTE /* \NSTE */ } } } Device (DFP2) { Name (_ADR, 0x0600) // _ADR: Address Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status { SMIF = One TRP0 = Zero If (CSTE & 0x2020) { Return (0x1F) } Return (0x1D) } Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State { If (NSTE & 0x2020) { Return (One) } Return (Zero) } Method (_DSS, 1, NotSerialized) // _DSS: Device Set State { If ((Arg0 & 0xC0000000) == 0xC0000000) { CSTE = NSTE /* \NSTE */ } } } } Device (IDEC) { Name (_ADR, 0x001F0001) // _ADR: Address OperationRegion (PACS, PCI_Config, 0x40, 0xC0) Field (PACS, DWordAcc, NoLock, Preserve) { PRIT, 16, Offset (0x04), PSIT, 4, Offset (0x08), SYNC, 4, Offset (0x0A), SDT0, 2, , 2, SDT1, 2, Offset (0x14), ICR0, 4, ICR1, 4, ICR2, 4, ICR3, 4, ICR4, 4, ICR5, 4 } Device (PRID) { Name (_ADR, Zero) // _ADR: Address Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { Name (PBUF, Buffer (0x14) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0010 */ 0x00, 0x00, 0x00, 0x00 /* .... */ }) CreateDWordField (PBUF, Zero, PIO0) CreateDWordField (PBUF, 0x04, DMA0) CreateDWordField (PBUF, 0x08, PIO1) CreateDWordField (PBUF, 0x0C, DMA1) CreateDWordField (PBUF, 0x10, FLAG) PIO0 = GETP (PRIT) DMA0 = GDMA ((SYNC & One), (ICR3 & One), ( ICR0 & One), SDT0, (ICR1 & One)) If (DMA0 == Ones) { DMA0 = PIO0 /* \_SB_.PCI0.IDEC.PRID._GTM.PIO0 */ } If (PRIT & 0x4000) { If ((PRIT & 0x90) == 0x80) { PIO1 = 0x0384 } Else { PIO1 = GETT (PSIT) } } Else { PIO1 = Ones } DMA1 = GDMA ((SYNC & 0x02), (ICR3 & 0x02), ( ICR0 & 0x02), SDT1, (ICR1 & 0x02)) If (DMA1 == Ones) { DMA1 = PIO1 /* \_SB_.PCI0.IDEC.PRID._GTM.PIO1 */ } FLAG = GETF ((SYNC & One), (SYNC & 0x02), PRIT) If ((PIO0 == Ones) & (DMA0 == Ones)) { PIO0 = 0x78 DMA0 = 0x14 FLAG = 0x03 } Return (PBUF) /* \_SB_.PCI0.IDEC.PRID._GTM.PBUF */ } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { CreateDWordField (Arg0, Zero, PIO0) CreateDWordField (Arg0, 0x04, DMA0) CreateDWordField (Arg0, 0x08, PIO1) CreateDWordField (Arg0, 0x0C, DMA1) CreateDWordField (Arg0, 0x10, FLAG) If (SizeOf (Arg1) == 0x0200) { PRIT &= 0x40F0 SYNC &= 0x02 SDT0 = Zero ICR0 &= 0x02 ICR1 &= 0x02 ICR3 &= 0x02 ICR5 &= 0x02 CreateWordField (Arg1, 0x62, W490) CreateWordField (Arg1, 0x6A, W530) CreateWordField (Arg1, 0x7E, W630) CreateWordField (Arg1, 0x80, W640) CreateWordField (Arg1, 0xB0, W880) CreateWordField (Arg1, 0xBA, W930) PRIT |= 0x8004 If ((FLAG & 0x02) && (W490 & 0x0800)) { PRIT |= 0x02 } PRIT |= SETP (PIO0, W530, W640) If (FLAG & One) { SYNC |= One SDT0 = SDMA (DMA0) If (DMA0 < 0x1E) { ICR3 |= One } If (DMA0 < 0x3C) { ICR0 |= One } If (W930 & 0x2000) { ICR1 |= One } } } If (SizeOf (Arg2) == 0x0200) { PRIT &= 0x3F0F PSIT = Zero SYNC &= One SDT1 = Zero ICR0 &= One ICR1 &= One ICR3 &= One ICR5 &= One CreateWordField (Arg2, 0x62, W491) CreateWordField (Arg2, 0x6A, W531) CreateWordField (Arg2, 0x7E, W631) CreateWordField (Arg2, 0x80, W641) CreateWordField (Arg2, 0xB0, W881) CreateWordField (Arg2, 0xBA, W931) PRIT |= 0x8040 If ((FLAG & 0x08) && (W491 & 0x0800)) { PRIT |= 0x20 } If (FLAG & 0x10) { PRIT |= 0x4000 If (PIO1 > 0xF0) { PRIT |= 0x80 } Else { PRIT |= 0x10 PSIT = SETT (PIO1, W531, W641) } } If (FLAG & 0x04) { SYNC |= 0x02 SDT1 = SDMA (DMA1) If (DMA1 < 0x1E) { ICR3 |= 0x02 } If (DMA1 < 0x3C) { ICR0 |= 0x02 } If (W931 & 0x2000) { ICR1 |= 0x02 } } } } Device (P_D0) { Name (_ADR, Zero) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Name (PIB0, Buffer (0x0E) { /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF /* ...... */ }) CreateByteField (PIB0, One, PMD0) CreateByteField (PIB0, 0x08, DMD0) If (PRIT & 0x02) { If ((PRIT & 0x09) == 0x08) { PMD0 = 0x08 } Else { PMD0 = 0x0A Local0 = ((PRIT & 0x0300) >> 0x08) Local1 = ((PRIT & 0x3000) >> 0x0C) Local2 = (Local0 + Local1) If (0x03 == Local2) { PMD0 = 0x0B } If (0x05 == Local2) { PMD0 = 0x0C } } } Else { PMD0 = One } If (SYNC & One) { DMD0 = (SDT0 | 0x40) If (ICR1 & One) { If (ICR0 & One) { DMD0 += 0x02 } If (ICR3 & One) { DMD0 = 0x45 } } } Else { DMD0 = (((PMD0 & 0x07) - 0x02) | 0x20) } Return (PIB0) /* \_SB_.PCI0.IDEC.PRID.P_D0._GTF.PIB0 */ } } Device (P_D1) { Name (_ADR, One) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Name (PIB1, Buffer (0x0E) { /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF /* ...... */ }) CreateByteField (PIB1, One, PMD1) CreateByteField (PIB1, 0x08, DMD1) If (PRIT & 0x20) { If ((PRIT & 0x90) == 0x80) { PMD1 = 0x08 } Else { Local0 = ((PSIT & 0x03) + ((PSIT & 0x0C) >> 0x02 )) If (0x05 == Local0) { PMD1 = 0x0C } ElseIf (0x03 == Local0) { PMD1 = 0x0B } Else { PMD1 = 0x0A } } } Else { PMD1 = One } If (SYNC & 0x02) { DMD1 = (SDT1 | 0x40) If (ICR1 & 0x02) { If (ICR0 & 0x02) { DMD1 += 0x02 } If (ICR3 & 0x02) { DMD1 = 0x45 } } } Else { DMD1 = (((PMD1 & 0x07) - 0x02) | 0x20) } Return (PIB1) /* \_SB_.PCI0.IDEC.PRID.P_D1._GTF.PIB1 */ } } } } Device (SATA) { Name (_ADR, 0x001F0002) // _ADR: Address OperationRegion (SACS, PCI_Config, 0x40, 0xC0) Field (SACS, DWordAcc, NoLock, Preserve) { PRIT, 16, SECT, 16, PSIT, 4, SSIT, 4, Offset (0x08), SYNC, 4, Offset (0x0A), SDT0, 2, , 2, SDT1, 2, Offset (0x0B), SDT2, 2, , 2, SDT3, 2, Offset (0x14), ICR0, 4, ICR1, 4, ICR2, 4, ICR3, 4, ICR4, 4, ICR5, 4, Offset (0x50), MAPV, 2 } Device (PRID) { Name (_ADR, Zero) // _ADR: Address Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { If (SCFG != 0x04) { Name (PBUF, Buffer (0x14) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0010 */ 0x00, 0x00, 0x00, 0x00 /* .... */ }) CreateDWordField (PBUF, Zero, PIO0) CreateDWordField (PBUF, 0x04, DMA0) CreateDWordField (PBUF, 0x08, PIO1) CreateDWordField (PBUF, 0x0C, DMA1) CreateDWordField (PBUF, 0x10, FLAG) PIO0 = GETP (PRIT) DMA0 = GDMA ((SYNC & One), (ICR3 & One), ( ICR0 & One), SDT0, (ICR1 & One)) If (DMA0 == Ones) { DMA0 = PIO0 /* \_SB_.PCI0.SATA.PRID._GTM.PIO0 */ } If (PRIT & 0x4000) { If ((PRIT & 0x90) == 0x80) { PIO1 = 0x0384 } Else { PIO1 = GETT (PSIT) } } Else { PIO1 = Ones } DMA1 = GDMA ((SYNC & 0x02), (ICR3 & 0x02), ( ICR0 & 0x02), SDT1, (ICR1 & 0x02)) If (DMA1 == Ones) { DMA1 = PIO1 /* \_SB_.PCI0.SATA.PRID._GTM.PIO1 */ } FLAG = GETF ((SYNC & One), (SYNC & 0x02), PRIT) Return (PBUF) /* \_SB_.PCI0.SATA.PRID._GTM.PBUF */ } Return (Zero) } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { If (SCFG != 0x04) { CreateDWordField (Arg0, Zero, PIO0) CreateDWordField (Arg0, 0x04, DMA0) CreateDWordField (Arg0, 0x08, PIO1) CreateDWordField (Arg0, 0x0C, DMA1) CreateDWordField (Arg0, 0x10, FLAG) If (SizeOf (Arg1) == 0x0200) { PRIT &= 0x40F0 SYNC &= 0x0E SDT0 = Zero ICR0 &= 0x0E ICR1 &= 0x0E ICR3 &= 0x0E ICR5 &= 0x0E CreateWordField (Arg1, 0x62, W490) CreateWordField (Arg1, 0x6A, W530) CreateWordField (Arg1, 0x7E, W630) CreateWordField (Arg1, 0x80, W640) CreateWordField (Arg1, 0xB0, W880) CreateWordField (Arg1, 0xBA, W930) PRIT |= 0x8004 If ((FLAG & 0x02) && (W490 & 0x0800)) { PRIT |= 0x02 } PRIT |= SETP (PIO0, W530, W640) If (FLAG & One) { SYNC |= One SDT0 = SDMA (DMA0) If (DMA0 < 0x1E) { ICR3 |= One } If (DMA0 < 0x3C) { ICR0 |= One } ICR1 |= One } } If (SizeOf (Arg2) == 0x0200) { PRIT &= 0x3F0F PSIT = Zero SYNC &= 0x0D SDT1 = Zero ICR0 &= 0x0D ICR1 &= 0x0D ICR3 &= 0x0D ICR5 &= 0x0D CreateWordField (Arg2, 0x62, W491) CreateWordField (Arg2, 0x6A, W531) CreateWordField (Arg2, 0x7E, W631) CreateWordField (Arg2, 0x80, W641) CreateWordField (Arg2, 0xB0, W881) CreateWordField (Arg2, 0xBA, W931) PRIT |= 0x8040 If ((FLAG & 0x08) && (W491 & 0x0800)) { PRIT |= 0x20 } If (FLAG & 0x10) { PRIT |= 0x4000 If (PIO1 > 0xF0) { PRIT |= 0x80 } Else { PRIT |= 0x10 PSIT = SETT (PIO1, W531, W641) } } If (FLAG & 0x04) { SYNC |= 0x02 SDT1 = SDMA (DMA1) If (DMA1 < 0x1E) { ICR3 |= 0x02 } If (DMA1 < 0x3C) { ICR0 |= 0x02 } ICR1 |= 0x02 } } } } Device (P_D0) { Name (_ADR, Zero) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { If (SCFG != 0x04) { Name (PIB0, Buffer (0x0E) { /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF /* ...... */ }) CreateByteField (PIB0, One, PMD0) CreateByteField (PIB0, 0x08, DMD0) If (PRIT & 0x02) { If ((PRIT & 0x09) == 0x08) { PMD0 = 0x08 } Else { PMD0 = 0x0A Local0 = ((PRIT & 0x0300) >> 0x08) Local1 = ((PRIT & 0x3000) >> 0x0C) Local2 = (Local0 + Local1) If (0x03 == Local2) { PMD0 = 0x0B } If (0x05 == Local2) { PMD0 = 0x0C } } } Else { PMD0 = One } If (SYNC & One) { DMD0 = (SDT0 | 0x40) If (ICR1 & One) { If (ICR0 & One) { DMD0 += 0x02 } If (ICR3 & One) { DMD0 = 0x45 } } } Else { DMD0 = (((PMD0 & 0x07) - 0x02) | 0x20) } Return (PIB0) /* \_SB_.PCI0.SATA.PRID.P_D0._GTF.PIB0 */ } Return (Zero) } } Device (P_D1) { Name (_ADR, One) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { If (SCFG != 0x04) { Name (PIB1, Buffer (0x0E) { /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF /* ...... */ }) CreateByteField (PIB1, One, PMD1) CreateByteField (PIB1, 0x08, DMD1) If (PRIT & 0x20) { If ((PRIT & 0x90) == 0x80) { PMD1 = 0x08 } Else { Local0 = ((PSIT & 0x03) + ((PSIT & 0x0C) >> 0x02 )) If (0x05 == Local0) { PMD1 = 0x0C } ElseIf (0x03 == Local0) { PMD1 = 0x0B } Else { PMD1 = 0x0A } } } Else { PMD1 = One } If (SYNC & 0x02) { DMD1 = (SDT1 | 0x40) If (ICR1 & 0x02) { If (ICR0 & 0x02) { DMD1 += 0x02 } If (ICR3 & 0x02) { DMD1 = 0x45 } } } Else { DMD1 = (((PMD1 & 0x07) - 0x02) | 0x20) } Return (PIB1) /* \_SB_.PCI0.SATA.PRID.P_D1._GTF.PIB1 */ } Return (Zero) } } } Device (SECD) { Name (_ADR, One) // _ADR: Address Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { If (SCFG != 0x04) { Name (SBUF, Buffer (0x14) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0010 */ 0x00, 0x00, 0x00, 0x00 /* .... */ }) CreateDWordField (SBUF, Zero, PIO0) CreateDWordField (SBUF, 0x04, DMA0) CreateDWordField (SBUF, 0x08, PIO1) CreateDWordField (SBUF, 0x0C, DMA1) CreateDWordField (SBUF, 0x10, FLAG) PIO0 = GETP (SECT) DMA0 = GDMA ((SYNC & 0x04), (ICR3 & 0x04), ( ICR0 & 0x04), SDT2, (ICR1 & 0x04)) If (DMA0 == Ones) { DMA0 = PIO0 /* \_SB_.PCI0.SATA.SECD._GTM.PIO0 */ } If (SECT & 0x4000) { If ((SECT & 0x90) == 0x80) { PIO1 = 0x0384 } Else { PIO1 = GETT (SSIT) } } Else { PIO1 = Ones } DMA1 = GDMA ((SYNC & 0x08), (ICR3 & 0x08), ( ICR0 & 0x08), SDT3, (ICR1 & 0x08)) If (DMA1 == Ones) { DMA1 = PIO1 /* \_SB_.PCI0.SATA.SECD._GTM.PIO1 */ } FLAG = GETF ((SYNC & 0x04), (SYNC & 0x08), SECT) If ((PIO0 == Ones) & (DMA0 == Ones)) { PIO0 = 0x78 DMA0 = 0x14 FLAG = 0x03 } Return (SBUF) /* \_SB_.PCI0.SATA.SECD._GTM.SBUF */ } Return (Zero) } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { If (SCFG != 0x04) { CreateDWordField (Arg0, Zero, PIO0) CreateDWordField (Arg0, 0x04, DMA0) CreateDWordField (Arg0, 0x08, PIO1) CreateDWordField (Arg0, 0x0C, DMA1) CreateDWordField (Arg0, 0x10, FLAG) If (SizeOf (Arg1) == 0x0200) { SECT &= 0x40F0 SYNC &= 0x0B SDT2 = Zero ICR0 &= 0x0B ICR1 &= 0x0B ICR3 &= 0x0B ICR5 &= 0x0B CreateWordField (Arg1, 0x62, W490) CreateWordField (Arg1, 0x6A, W530) CreateWordField (Arg1, 0x7E, W630) CreateWordField (Arg1, 0x80, W640) CreateWordField (Arg1, 0xB0, W880) CreateWordField (Arg1, 0xBA, W930) SECT |= 0x8004 If ((FLAG & 0x02) && (W490 & 0x0800)) { SECT |= 0x02 } SECT |= SETP (PIO0, W530, W640) If (FLAG & One) { SYNC |= 0x04 SDT2 = SDMA (DMA0) If (DMA0 < 0x1E) { ICR3 |= 0x04 } If (DMA0 < 0x3C) { ICR0 |= 0x04 } If (W930 & 0x2000) { ICR1 |= 0x04 } } } If (SizeOf (Arg2) == 0x0200) { SECT &= 0x3F0F SSIT = Zero SYNC &= 0x07 SDT3 = Zero ICR0 &= 0x07 ICR1 &= 0x07 ICR3 &= 0x07 ICR5 &= 0x07 CreateWordField (Arg2, 0x62, W491) CreateWordField (Arg2, 0x6A, W531) CreateWordField (Arg2, 0x7E, W631) CreateWordField (Arg2, 0x80, W641) CreateWordField (Arg2, 0xB0, W881) CreateWordField (Arg2, 0xBA, W931) SECT |= 0x8040 If ((FLAG & 0x08) && (W491 & 0x0800)) { SECT |= 0x20 } If (FLAG & 0x10) { SECT |= 0x4000 If (PIO1 > 0xF0) { SECT |= 0x80 } Else { SECT |= 0x10 SSIT = SETT (PIO1, W531, W641) } } If (FLAG & 0x04) { SYNC |= 0x08 SDT3 = SDMA (DMA1) If (DMA1 < 0x1E) { ICR3 |= 0x08 } If (DMA1 < 0x3C) { ICR0 |= 0x08 } If (W931 & 0x2000) { ICR1 |= 0x08 } } } } } Device (S_D0) { Name (_ADR, Zero) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { If (SCFG != 0x04) { Name (SIB0, Buffer (0x0E) { /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF /* ...... */ }) CreateByteField (SIB0, One, PMD0) CreateByteField (SIB0, 0x08, DMD0) If (SECT & 0x02) { If ((SECT & 0x09) == 0x08) { PMD0 = 0x08 } Else { PMD0 = 0x0A Local0 = ((SECT & 0x0300) >> 0x08) Local1 = ((SECT & 0x3000) >> 0x0C) Local2 = (Local0 + Local1) If (0x03 == Local2) { PMD0 = 0x0B } If (0x05 == Local2) { PMD0 = 0x0C } } } Else { PMD0 = One } If (SYNC & 0x04) { DMD0 = (SDT2 | 0x40) If (ICR1 & 0x04) { If (ICR0 & 0x04) { DMD0 += 0x02 } If (ICR3 & 0x04) { DMD0 = 0x45 } } } Else { DMD0 = (((PMD0 & 0x07) - 0x02) | 0x20) } Return (SIB0) /* \_SB_.PCI0.SATA.SECD.S_D0._GTF.SIB0 */ } Return (Zero) } } Device (S_D1) { Name (_ADR, One) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { If (SCFG != 0x04) { Name (SIB1, Buffer (0x0E) { /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF /* ...... */ }) CreateByteField (SIB1, One, PMD1) CreateByteField (SIB1, 0x08, DMD1) If (SECT & 0x20) { If ((SECT & 0x90) == 0x80) { PMD1 = 0x08 } Else { Local0 = ((SSIT & 0x03) + ((SSIT & 0x0C) >> 0x02 )) If (0x05 == Local0) { PMD1 = 0x0C } ElseIf (0x03 == Local0) { PMD1 = 0x0B } Else { PMD1 = 0x0A } } } Else { PMD1 = One } If (SYNC & 0x08) { DMD1 = (SDT3 | 0x40) If (ICR1 & 0x08) { If (ICR0 & 0x08) { DMD1 += 0x02 } If (ICR3 & 0x08) { DMD1 = 0x45 } } } Else { DMD1 = (((PMD1 & 0x07) - 0x02) | 0x20) } Return (SIB1) /* \_SB_.PCI0.SATA.SECD.S_D1._GTF.SIB1 */ } Return (Zero) } } } Device (PRT0) { Name (_ADR, 0xFFFF) // _ADR: Address Method (_SDD, 1, NotSerialized) // _SDD: Set Device Data { If (SCFG == 0x04) { Name (GBU0, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00 /* ....... */ }) CreateByteField (GBU0, Zero, GB00) CreateByteField (GBU0, One, GB01) CreateByteField (GBU0, 0x02, GB02) CreateByteField (GBU0, 0x03, GB03) CreateByteField (GBU0, 0x04, GB04) CreateByteField (GBU0, 0x05, GB05) CreateByteField (GBU0, 0x06, GB06) If (SizeOf (Arg0) == 0x0200) { CreateWordField (Arg0, 0x9C, W780) CreateWordField (Arg0, 0x9E, W790) If (W780 && 0x04) { If ((W790 & 0x04) == Zero) { GB00 = 0x10 GB01 = 0x03 GB06 = 0xEF } } } GTF0 = GBU0 /* \_SB_.PCI0.SATA.PRT0._SDD.GBU0 */ } } Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { If ((SCFG == 0x04) && (AIBT == Zero)) { Return (GTF0) /* \GTF0 */ } Return (Zero) } } Device (PRT2) { Name (_ADR, 0x0002FFFF) // _ADR: Address Method (_SDD, 1, NotSerialized) // _SDD: Set Device Data { If (SCFG == 0x04) { Name (GBU2, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00 /* ....... */ }) CreateByteField (GBU2, Zero, GB20) CreateByteField (GBU2, One, GB21) CreateByteField (GBU2, 0x02, GB22) CreateByteField (GBU2, 0x03, GB23) CreateByteField (GBU2, 0x04, GB24) CreateByteField (GBU2, 0x05, GB25) CreateByteField (GBU2, 0x06, GB26) If (SizeOf (Arg0) == 0x0200) { CreateWordField (Arg0, 0x9C, W782) CreateWordField (Arg0, 0x9E, W792) If (W782 && 0x04) { If ((W792 & 0x04) == Zero) { GB20 = 0x10 GB21 = 0x03 GB26 = 0xEF } } } GTF2 = GBU2 /* \_SB_.PCI0.SATA.PRT2._SDD.GBU2 */ } } Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { If ((SCFG == 0x04) && (AIBT == Zero)) { Return (GTF2) /* \GTF2 */ } Return (Zero) } } } Device (WMID) { Name (_HID, "PNP0C14" /* Windows Management Instrumentation Device */) // _HID: Hardware ID Name (_UID, Zero) // _UID: Unique ID Name (ERRD, 0x00010000) Name (BUFF, Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 /* .... */ }) CreateByteField (BUFF, Zero, BF00) CreateByteField (BUFF, One, BF01) CreateByteField (BUFF, 0x02, BF02) CreateByteField (BUFF, 0x03, BF03) Name (BUF1, Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 /* .... */ }) Name (AADS, Buffer (0x04) { 0x00 /* . */ }) CreateField (AADS, Zero, 0x04, AS00) CreateField (AADS, 0x04, One, AS01) CreateField (AADS, 0x05, One, AS02) CreateField (AADS, 0x10, 0x10, AS03) Name (BAEF, Zero) Name (BADF, Zero) Name (BADG, Package (0x0D) { Zero, Zero, Zero, Zero, Zero, Zero, Zero, 0x00010000, 0x00010000, 0x00010000, 0x00010000, Zero, 0x00010000 }) Name (WLDS, Zero) Name (WLED, Zero) Name (BTDS, Zero) Name (BTED, Zero) Name (BLDS, Zero) Name (BLED, Zero) Name (NTDC, Zero) Name (NTDV, Zero) Name (WLSD, 0x0100) Name (WLSE, 0x0101) Name (BLTD, 0x0200) Name (BLTE, 0x0201) Name (LBL0, 0x0300) Name (LBL1, 0x0301) Name (LBL2, 0x0302) Name (LBL3, 0x0303) Name (LBL4, 0x0304) Name (LBL5, 0x0305) Name (LBL6, 0x0306) Name (LBL7, 0x0307) Name (LBL8, 0x0308) Name (LBL9, 0x0309) Name (LBLA, 0x030A) Name (LBLB, 0x030B) Name (LBLC, 0x030C) Name (LBLD, 0x030D) Name (LBLE, 0x030E) Name (LBLF, 0x030F) Name (CADI, 0x0401) Name (CADO, 0x0400) Name (GSEE, 0x0501) Name (GSED, 0x0502) Name (VAPI, 0x0601) Name (VAPO, 0x0600) Name (WBBO, 0x0701) Name (WBBI, 0x0700) Name (G3MD, 0x0800) Name (G3ME, 0x0801) Name (LANI, 0x0900) Name (LANO, 0x0901) Name (LDOF, 0x0A00) Name (LDON, 0x0A01) Name (FNKE, 0x00010002) Name (FNF5, 0x00015001) Name (BBSB, Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 /* .... */ }) CreateField (BBSB, Zero, 0x10, BBD0) CreateField (BBSB, 0x10, 0x10, BBD1) Name (TLS0, Zero) Name (TLS1, One) Name (TLS2, 0x02) Name (TLS3, 0x03) Name (TLS4, 0x04) Name (TLS5, 0x05) Name (TLS6, 0x06) Name (TLS7, 0x07) Name (BCDS, Package (0x0D) { 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000 }) Name (BDDS, Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 /* .... */ }) CreateField (BDDS, Zero, 0x10, BDD0) CreateField (BDDS, 0x10, 0x10, BDD1) Name (DSY0, Buffer (0x28) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ........ */ }) Name (DSY1, Buffer (0x18) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ........ */ }) Name (DSY2, Buffer (0x10) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ........ */ }) Name (DSY3, Buffer (0x18) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ........ */ }) Name (DSY4, Buffer (0x10) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ........ */ }) Name (DSY5, Buffer (0x28) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ........ */ }) CreateField (DSY0, Zero, 0x40, DY00) CreateField (DSY0, 0x40, 0x40, DY01) CreateField (DSY0, 0x80, 0x40, DY02) CreateField (DSY0, 0xC0, 0x40, DY03) CreateField (DSY0, 0x0100, 0x40, DY04) CreateField (DSY1, Zero, 0x40, DY10) CreateField (DSY1, 0x40, 0x40, DY11) CreateField (DSY1, 0x80, 0x40, DY12) CreateField (DSY2, Zero, 0x40, DY20) CreateField (DSY2, 0x40, 0x10, DY21) CreateField (DSY2, 0x50, 0x10, DY22) CreateField (DSY0, Zero, 0xC0, DSX4) Name (BEDS, Package (0x12) { 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000 }) Name (WIT0, Zero) Name (DSY6, Buffer (0x14) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0010 */ 0x00, 0x00, 0x00, 0x00 /* .... */ }) CreateField (DSY6, Zero, 0x20, DY60) CreateField (DSY6, 0x20, 0x20, DY61) CreateField (DSY6, 0x40, 0x20, DY62) CreateField (DSY6, 0x60, 0x20, DY63) CreateField (DSY6, 0x80, 0x20, DY64) Name (WPRW, Buffer (0x14) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ /* 0010 */ 0x00, 0x00, 0x00, 0x00 /* .... */ }) CreateField (WPRW, Zero, 0x08, WWD0) CreateField (WPRW, 0x08, 0x08, WWD1) CreateField (WPRW, 0x10, 0x08, WWD2) CreateField (WPRW, 0x18, 0x08, WWD3) CreateField (WPRW, 0x20, 0x08, WWD4) CreateField (WPRW, 0x28, 0x20, WWD5) Name (WPCI, Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 /* .... */ }) CreateField (WPCI, Zero, 0x08, WPIR) CreateField (WPCI, 0x08, 0x03, WPIF) CreateField (WPCI, 0x0B, 0x05, WPID) CreateField (WPCI, 0x10, 0x08, WPIB) Name (BFDS, Package (0x04) { 0x02, 0x02, 0x02, 0x02 }) Name (GSTS, Zero) Name (BFEF, Zero) Name (BGEF, Zero) Name (BGDS, Package (0x01) { One }) Method (AAF1, 0, NotSerialized) { AS02 = Zero AS03 = Zero } Method (WGDS, 1, NotSerialized) { Name (T_0, Zero) T_0 = Arg0 If (T_0 == One) {} ElseIf (T_0 == 0x02) {} ElseIf (T_0 == 0x03) {} ElseIf (T_0 == 0x08) { BADG [0x07] = One } ElseIf (T_0 == 0x09) { BADG [0x08] = Zero } ElseIf (T_0 == 0x0C) {} ElseIf (T_0 == 0x0D) {} } Method (WSDS, 2, NotSerialized) { BUFF = Arg1 Local0 = Arg0 Local1 = BF00 /* \_SB_.PCI0.WMID.BF00 */ BADG [(Local0 - One)] = Zero Name (T_0, Zero) T_0 = Local1 If (T_0 == Zero) { Name (T_1, Zero) T_1 = Local0 If (T_1 == 0x04) {} ElseIf (T_1 == 0x05) {} ElseIf (T_1 == 0x06) {} ElseIf (T_1 == 0x07) { BAEF = Zero } Else { BADG [(Local0 - One)] = 0x0100 } } Else { Name (T_2, Zero) T_2 = Local0 If (T_2 == 0x04) {} ElseIf (T_2 == 0x05) {} ElseIf (T_2 == 0x06) {} ElseIf (T_2 == 0x07) { BAEF = One } Else { BADG [(Local0 - One)] = 0x0100 } } } Method (OEMN, 0, NotSerialized) { If (BGEF == One) { Local0 = NTDV /* \_SB_.PCI0.WMID.NTDV */ If (Local0 != Zero) { NTDV = Zero Return (Local0) } } If (BAEF == One) { Local0 = NTDC /* \_SB_.PCI0.WMID.NTDC */ If (Local0 != Zero) { NTDC = Zero Return (Local0) } } If (BFEF == One) {} Return (Zero) } Method (STRL, 2, NotSerialized) { Local0 = Arg0 BUFF = Arg1 BBSB = Zero Name (T_0, Zero) T_0 = Local0 If (T_0 == One) {} ElseIf (T_0 == 0x02) {} Else { BBSB = 0x00010000 } } Method (WODP, 2, NotSerialized) { If (Arg0 == 0x03) {} Else { BCDS [(Arg0 - One)] = One } If (Arg0 == 0x0C) { If (Arg1) {} Else { } } Else { } } Method (GCPU, 1, NotSerialized) { DSY0 = DSY5 /* \_SB_.PCI0.WMID.DSY5 */ Local0 = Arg0 Local2 = IHWM (Zero, Arg0) DSY6 = Local2 DY00 = DY60 /* \_SB_.PCI0.WMID.DY60 */ DY01 = DY61 /* \_SB_.PCI0.WMID.DY61 */ DY02 = DY62 /* \_SB_.PCI0.WMID.DY62 */ DY03 = DY63 /* \_SB_.PCI0.WMID.DY63 */ } Method (MSRR, 1, NotSerialized) { DSY1 = DSY3 /* \_SB_.PCI0.WMID.DSY3 */ DY00 = Arg0 Local2 = IHWM (One, Arg0) DSY6 = Local2 DY10 = DY60 /* \_SB_.PCI0.WMID.DY60 */ DY11 = DY61 /* \_SB_.PCI0.WMID.DY61 */ WIT0 = Zero DY12 = WIT0 /* \_SB_.PCI0.WMID.WIT0 */ } Method (MSRW, 1, NotSerialized) { DSY1 = DSY3 /* \_SB_.PCI0.WMID.DSY3 */ Local2 = IHWM (0x02, Arg0) DSY6 = Local2 DY10 = DY60 /* \_SB_.PCI0.WMID.DY60 */ DY11 = DY61 /* \_SB_.PCI0.WMID.DY61 */ WIT0 = Zero DY12 = WIT0 /* \_SB_.PCI0.WMID.WIT0 */ } Method (C4C3, 2, NotSerialized) { } Method (CPUF, 0, NotSerialized) { } Method (CPUT, 0, NotSerialized) { } Method (PCIR, 1, NotSerialized) { Local0 = Arg0 Local2 = IHWM (0x03, Arg0) DY20 = Local2 DSY6 = Local2 DSY2 = DSY4 /* \_SB_.PCI0.WMID.DSY4 */ DY20 = DY60 /* \_SB_.PCI0.WMID.DY60 */ } Method (PCIW, 1, NotSerialized) { Local0 = Arg0 DY20 = Arg0 Local2 = IHWM (0x04, Arg0) DSY6 = Local2 BUFF = DY61 /* \_SB_.PCI0.WMID.DY61 */ } Method (CPUS, 0, NotSerialized) { Local2 = IHWM (0x05, Zero) BUFF = Local2 BCDS [0x0C] = BUFF /* \_SB_.PCI0.WMID.BUFF */ } Method (PCID, 1, NotSerialized) { Local2 = IHWM (0x06, Arg0) DSY6 = Local2 } Method (BTIF, 2, NotSerialized) { Local0 = Arg0 BUFF = Arg1 If (Local0 == 0x0D) { BF00 = BF02 /* \_SB_.PCI0.WMID.BF02 */ Local1 = BF01 /* \_SB_.PCI0.WMID.BF01 */ BF00 = BF02 /* \_SB_.PCI0.WMID.BF02 */ Local1 = BF01 /* \_SB_.PCI0.WMID.BF01 */ } If (Local0 == 0x0E) { If (BF00 == Zero) { BF00 = 0xFF } Else { Local1 = BF00 /* \_SB_.PCI0.WMID.BF00 */ BF00 = One } } } Method (CKGS, 0, NotSerialized) { GSTS = One Return (GSTS) /* \_SB_.PCI0.WMID.GSTS */ } Method (WSHP, 1, NotSerialized) { } Method (WSSL, 1, NotSerialized) { } Method (WSSP, 1, NotSerialized) { } Method (WSSE, 1, NotSerialized) { } Method (WSVE, 1, NotSerialized) { Local0 = Arg0 If (Local0 == One) { BGEF = One } Else { BGEF = Zero } BGDS [Zero] = Zero } Name (_WDG, Buffer (0xDC) { /* 0000 */ 0x09, 0x4E, 0x76, 0x95, 0x56, 0xFB, 0x83, 0x4E, /* .Nv.V..N */ /* 0008 */ 0xB3, 0x1A, 0x37, 0x76, 0x1F, 0x60, 0x99, 0x4A, /* ..7v.`.J */ /* 0010 */ 0x41, 0x41, 0x01, 0x01, 0x58, 0xF2, 0xF4, 0x6A, /* AA..X..j */ /* 0018 */ 0x01, 0xB4, 0xFD, 0x42, 0xBE, 0x91, 0x3D, 0x4A, /* ...B..=J */ /* 0020 */ 0xC2, 0xD7, 0xC0, 0xD3, 0x42, 0x41, 0x01, 0x02, /* ....BA.. */ /* 0028 */ 0xAC, 0x61, 0x1A, 0xCC, 0x56, 0x42, 0xA3, 0x41, /* .a..VB.A */ /* 0030 */ 0xB9, 0xE0, 0x05, 0xA4, 0x45, 0xAD, 0xE2, 0xF5, /* ....E... */ /* 0038 */ 0x80, 0x00, 0x01, 0x08, 0x53, 0x44, 0x8C, 0xE7, /* ....SD.. */ /* 0040 */ 0x27, 0x02, 0x61, 0x48, 0x9E, 0xDE, 0xF5, 0x60, /* '.aH...` */ /* 0048 */ 0x0B, 0x4A, 0x3D, 0x39, 0x42, 0x42, 0x01, 0x02, /* .J=9BB.. */ /* 0050 */ 0x7B, 0x4F, 0xE0, 0xAA, 0xC5, 0xB3, 0x65, 0x48, /* {O....eH */ /* 0058 */ 0x95, 0xD6, 0x9F, 0xAC, 0x7F, 0xF3, 0xE9, 0x2B, /* .......+ */ /* 0060 */ 0x42, 0x43, 0x01, 0x02, 0x79, 0x4C, 0xF9, 0xCF, /* BC..yL.. */ /* 0068 */ 0x77, 0x6C, 0xF7, 0x4A, 0xAC, 0x56, 0x7D, 0xD0, /* wl.J.V}. */ /* 0070 */ 0xCE, 0x01, 0xC9, 0x97, 0x42, 0x44, 0x01, 0x02, /* ....BD.. */ /* 0078 */ 0xC5, 0x2E, 0x77, 0x79, 0xB1, 0x04, 0xFD, 0x4B, /* ..wy...K */ /* 0080 */ 0x84, 0x3C, 0x61, 0xE7, 0xF7, 0x7B, 0x6C, 0xC9, /* .= 0x80) { If (Arg0 < 0x83) { Return (OEMN ()) } } Return (Zero) } Method (WMBB, 3, NotSerialized) { STRL (Arg1, Arg2) If (Arg1 == One) { BUFF = BBSB /* \_SB_.PCI0.WMID.BBSB */ } If (Arg1 == 0x02) { BUFF = BBD1 /* \_SB_.PCI0.WMID.BBD1 */ } Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */ } Method (WMBC, 3, NotSerialized) { WODP (Arg1, Arg2) If (Arg1 < 0x0A) { Local0 = (Arg1 - One) BUFF = DerefOf (BCDS [(Arg1 - One)]) } Else { BUFF = (DerefOf (BCDS [(Arg1 - 0x0A)]) >> 0x10) } Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */ } Method (WMBD, 3, NotSerialized) { If (Arg1 == One) { BUFF = Arg2 Local0 = BUFF /* \_SB_.PCI0.WMID.BUFF */ WIT0 = Arg2 GCPU (WIT0) Return (DSY0) /* \_SB_.PCI0.WMID.DSY0 */ } If (Arg1 == 0x02) { Local0 = Arg2 MSRR (Arg2) Return (DSY1) /* \_SB_.PCI0.WMID.DSY1 */ } If (Arg1 == 0x03) { Local0 = Arg2 MSRW (Arg2) Return (DSY1) /* \_SB_.PCI0.WMID.DSY1 */ } If (Arg1 == 0x04) { C4C3 (Arg1, Arg2) BUFF = (DerefOf (BCDS [(Arg1 + 0x05)]) >> 0x10) Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */ } If (Arg1 == 0x05) { C4C3 (Arg1, Arg2) BUFF = DerefOf (BCDS [(Arg1 + 0x04)]) Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */ } If (Arg1 == 0x06) { CPUF () BUFF = DerefOf (BCDS [(Arg1 + 0x04)]) Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */ } If (Arg1 == 0x07) { CPUT () BUFF = DerefOf (BCDS [(Arg1 + 0x04)]) Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */ } If (Arg1 == 0x08) { WPRW = Arg2 WPIR = WWD1 /* \_SB_.PCI0.WMID.WWD1 */ WPIF = WWD2 /* \_SB_.PCI0.WMID.WWD2 */ WPID = WWD3 /* \_SB_.PCI0.WMID.WWD3 */ WPIB = WWD4 /* \_SB_.PCI0.WMID.WWD4 */ Concatenate (WPCI, WWD0, Local0) PCIR (Local0) Return (DSY2) /* \_SB_.PCI0.WMID.DSY2 */ } If (Arg1 == 0x09) { DSY6 = Arg2 Local0 = DY60 /* \_SB_.PCI0.WMID.DY60 */ DSY0 = Arg2 WPRW = DY01 /* \_SB_.PCI0.WMID.DY01 */ WPIR = WWD1 /* \_SB_.PCI0.WMID.WWD1 */ WPIF = WWD2 /* \_SB_.PCI0.WMID.WWD2 */ WPID = WWD3 /* \_SB_.PCI0.WMID.WWD3 */ WPIB = WWD4 /* \_SB_.PCI0.WMID.WWD4 */ Local1 = WPCI /* \_SB_.PCI0.WMID.WPCI */ Concatenate (DY60, WPCI, Local0) Concatenate (Local0, WWD0, Local1) PCIW (Local1) Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */ } If (Arg1 == 0x0A) { CPUS () BUFF = DerefOf (BCDS [(Arg1 + 0x02)]) Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */ } If (Arg1 == 0x0B) { PCID (Arg2) Return (DSY6) /* \_SB_.PCI0.WMID.DSY6 */ } Return (Zero) } Method (WMBE, 3, NotSerialized) { BTIF (Arg1, Arg2) Debug = BUFF /* \_SB_.PCI0.WMID.BUFF */ Debug = BEDS /* \_SB_.PCI0.WMID.BEDS */ BUFF = DerefOf (BEDS [(Arg1 - One)]) Debug = BUFF /* \_SB_.PCI0.WMID.BUFF */ Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */ } Method (WMBF, 3, NotSerialized) { } Method (WMBG, 3, NotSerialized) { BUFF = Arg2 WSVE (BF00) BUFF = DerefOf (BGDS [(Arg1 - One)]) Debug = BUFF /* \_SB_.PCI0.WMID.BUFF */ Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */ } } } } Scope (\) { Name (SSDT, Package (0x0C) { "CPU0IST ", 0x5F380C90, 0x00000239, "CPU1IST ", 0x5F380F10, 0x000000D0, "CPU0CST ", 0x5F37FE10, 0x000001C7, "CPU1CST ", 0x5F37EF10, 0x00000083 }) Name (CFGD, 0x013068B1) Name (\PDC0, 0x80000000) Name (\PDC1, 0x80000000) Name (\SDTL, Zero) } Scope (\_PR.CPU0) { Name (HI0, Zero) Name (HC0, Zero) Method (_PDC, 1, NotSerialized) // _PDC: Processor Driver Capabilities { CreateDWordField (Arg0, Zero, REVS) CreateDWordField (Arg0, 0x04, SIZE) Local0 = SizeOf (Arg0) Local1 = (Local0 - 0x08) CreateField (Arg0, 0x40, (Local1 * 0x08), TEMP) Name (STS0, Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 /* .... */ }) Concatenate (STS0, TEMP, Local2) _OSC (ToUUID ("4077a616-290c-47be-9ebd-d87058713953"), REVS, SIZE, Local2) } Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities { CreateDWordField (Arg3, Zero, STS0) CreateDWordField (Arg3, 0x04, CAP0) CreateDWordField (Arg0, Zero, IID0) CreateDWordField (Arg0, 0x04, IID1) CreateDWordField (Arg0, 0x08, IID2) CreateDWordField (Arg0, 0x0C, IID3) Name (UID0, ToUUID ("4077a616-290c-47be-9ebd-d87058713953")) CreateDWordField (UID0, Zero, EID0) CreateDWordField (UID0, 0x04, EID1) CreateDWordField (UID0, 0x08, EID2) CreateDWordField (UID0, 0x0C, EID3) If (!(((IID0 == EID0) && (IID1 == EID1)) && (( IID2 == EID2) && (IID3 == EID3)))) { STS0 [Zero] = 0x06 Return (Arg3) } If (Arg1 != One) { STS0 [Zero] = 0x0A Return (Arg3) } PDC0 = ((PDC0 & 0x7FFFFFFF) | CAP0) /* \_PR_.CPU0._OSC.CAP0 */ If (CFGD & One) { If (((CFGD & 0x01000000) && ((PDC0 & 0x09) == 0x09)) && !(SDTL & One)) { SDTL |= One OperationRegion (IST0, SystemMemory, DerefOf (SSDT [One]), DerefOf (SSDT [0x02])) Load (IST0, HI0) /* \_PR_.CPU0.HI0_ */ } } If (CFGD & 0xF0) { If (((CFGD & 0x01000000) && (PDC0 & 0x18)) && ! (SDTL & 0x02)) { SDTL |= 0x02 OperationRegion (CST0, SystemMemory, DerefOf (SSDT [0x07]), DerefOf (SSDT [0x08])) Load (CST0, HC0) /* \_PR_.CPU0.HC0_ */ } } Return (Arg3) } } Scope (\_PR.CPU1) { Name (HI1, Zero) Name (HC1, Zero) Method (_PDC, 1, NotSerialized) // _PDC: Processor Driver Capabilities { CreateDWordField (Arg0, Zero, REVS) CreateDWordField (Arg0, 0x04, SIZE) Local0 = SizeOf (Arg0) Local1 = (Local0 - 0x08) CreateField (Arg0, 0x40, (Local1 * 0x08), TEMP) Name (STS1, Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 /* .... */ }) Concatenate (STS1, TEMP, Local2) _OSC (ToUUID ("4077a616-290c-47be-9ebd-d87058713953"), REVS, SIZE, Local2) } Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities { CreateDWordField (Arg3, Zero, STS1) CreateDWordField (Arg3, 0x04, CAP1) CreateDWordField (Arg0, Zero, IID0) CreateDWordField (Arg0, 0x04, IID1) CreateDWordField (Arg0, 0x08, IID2) CreateDWordField (Arg0, 0x0C, IID3) Name (UID1, ToUUID ("4077a616-290c-47be-9ebd-d87058713953")) CreateDWordField (UID1, Zero, EID0) CreateDWordField (UID1, 0x04, EID1) CreateDWordField (UID1, 0x08, EID2) CreateDWordField (UID1, 0x0C, EID3) If (!(((IID0 == EID0) && (IID1 == EID1)) && (( IID2 == EID2) && (IID3 == EID3)))) { STS1 [Zero] = 0x06 Return (Arg3) } If (Arg1 != One) { STS1 [Zero] = 0x0A Return (Arg3) } PDC1 = ((PDC1 & 0x7FFFFFFF) | CAP1) /* \_PR_.CPU1._OSC.CAP1 */ If (CFGD & One) { If (((CFGD & 0x01000000) && ((PDC1 & 0x09) == 0x09)) && !(SDTL & 0x10)) { SDTL |= 0x10 OperationRegion (IST1, SystemMemory, DerefOf (SSDT [0x04]), DerefOf (SSDT [0x05])) Load (IST1, HI1) /* \_PR_.CPU1.HI1_ */ } } If (CFGD & 0xF0) { If (((CFGD & 0x01000000) && (PDC1 & 0x18)) && ! (SDTL & 0x20)) { SDTL |= 0x20 OperationRegion (CST1, SystemMemory, DerefOf (SSDT [0x0A]), DerefOf (SSDT [0x0B])) Load (CST1, HC1) /* \_PR_.CPU1.HC1_ */ } } Return (Arg3) } } }