/* RSD PTR: OEM=PTLTD, ACPI_Rev=1.0x (0) RSDT=0x0affa5b9, cksum=210 */ /* RSDT: Length=40, Revision=1, Checksum=252, OEMID=NEC, OEM Table ID=ND000034, OEM Revision=0x6040005, Creator ID= LTP, Creator Revision=0x0 Entries={ 0x0afffb8c } */ /* FACP: Length=116, Revision=1, Checksum=106, OEMID=NEC, OEM Table ID=ND000034, OEM Revision=0x6040005, Creator ID=PTL, Creator Revision=0xf4240 FACS=0xaffffc0, DSDT=0xaffa5e1 INT_MODEL=PIC Preferred_PM_Profile=Unspecified (0) SCI_INT=9 SMI_CMD=0xb1, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0xf2 PSTATE_CNT=0x0 PM1a_EVT_BLK=0x8000-0x8003 PM1a_CNT_BLK=0x8004-0x8005 PM2_CNT_BLK=0x8030-0x8030 PM_TMR_BLK=0x8008-0x800b GPE0_BLK=0x8018-0x8027 P_LVL2_LAT=10 us, P_LVL3_LAT=32 us FLUSH_SIZE=0, FLUSH_STRIDE=0 DUTY_OFFSET=1, DUTY_WIDTH=3 DAY_ALRM=13, MON_ALRM=0, CENTURY=50 IAPC_BOOT_ARCH={} Flags={WBINVD,WBINVD_FLUSH,C1_SUPPORTED,SLEEP_BUTTON,32BIT_TIMER} */ /* FACS: Length=64, HwSig=0x00000f21, Firm_Wake_Vec=0x00000000 Global_Lock={} Flags={} Version=0 OspmFlags={} */ /* DSDT: Length=21931, Revision=1, Checksum=123, OEMID=NEC, OEM Table ID=ND000034, OEM Revision=0x6040005, Creator ID=MSFT, Creator Revision=0x100000b */ /* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20170831 (32-bit version) * Copyright (c) 2000 - 2017 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of /tmp/acpidump.rxBw0F/acpdump.din, Sat Dec 29 16:51:33 2018 * * Original Table Header: * Signature "DSDT" * Length 0x000055AB (21931) * Revision 0x01 **** 32-bit table (V1), no 64-bit math support * Checksum 0x7B * OEM ID "NEC " * OEM Table ID "ND000034" * OEM Revision 0x06040005 (100925445) * Compiler ID "MSFT" * Compiler Version 0x0100000B (16777227) */ DefinitionBlock ("", "DSDT", 1, "NEC ", "ND000034", 0x06040005) { Scope (_PR) { Processor (CPU0, 0x00, 0x00008010, 0x06){} } Scope (_SB) { Name (ECLD, 0x00) Device (PCI0) { Name (_HID, EisaId ("PNP0A03") /* PCI Bus */) // _HID: Hardware ID Name (_BBN, 0x00) // _BBN: BIOS Bus Number Name (_ADR, 0x00) // _ADR: Address OperationRegion (REGS, PCI_Config, 0x40, 0x34) Field (REGS, DWordAcc, NoLock, Preserve) { Offset (0x0A), TOM, 16, Offset (0x1A), PAM1, 8, PAM2, 8, PAM3, 8, PAM4, 8, PAM5, 8, PAM6, 8, Offset (0x33), T_EN, 1 } Name (RSRC, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0001, // Granularity 0x0000, // Range Minimum 0x0000, // Range Maximum 0x0000, // Translation Offset 0x0001, // Length 0x00,, ) IO (Decode16, 0x0CF8, // Range Minimum 0x0CF8, // Range Maximum 0x01, // Alignment 0x08, // Length ) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Granularity 0x0000, // Range Minimum 0x0CF7, // Range Maximum 0x0000, // Translation Offset 0x0CF8, // Length 0x00,, , TypeStatic, DenseTranslation) 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,, _Y01, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C4000, // Range Minimum 0x000C7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y02, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C8000, // Range Minimum 0x000CBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y03, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000CC000, // Range Minimum 0x000CFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y04, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D0000, // Range Minimum 0x000D3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y05, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D4000, // Range Minimum 0x000D7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y06, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000D8000, // Range Minimum 0x000DBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y07, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000DC000, // Range Minimum 0x000DFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y08, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E0000, // Range Minimum 0x000E3FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y09, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E4000, // Range Minimum 0x000E7FFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y0A, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000E8000, // Range Minimum 0x000EBFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y0B, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000EC000, // Range Minimum 0x000EFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00004000, // Length 0x00,, _Y0C, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x00000000, // Range Minimum 0x00000000, // Range Maximum 0x00000000, // Translation Offset 0x00000000, // Length 0x00,, _Y00, AddressRangeMemory, TypeStatic) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Granularity 0x0D00, // Range Minimum 0xFFFF, // Range Maximum 0x0000, // Translation Offset 0xF300, // Length 0x00,, , TypeStatic, DenseTranslation) }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { CreateDWordField (RSRC, \_SB.PCI0._Y00._MIN, ATMN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y00._MAX, ATMX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y00._LEN, ATLN) // _LEN: Length Local0 = (TOM * 0x00010000) If (T_EN) { ATMN = (Local0 + 0x000E0000) } Else { ATMN = Local0 } ATLN = (0xFFE00000 - ATMN) /* \_SB_.PCI0._CRS.ATMN */ ATMX = ((ATMN + ATLN) - 0x01) CreateBitField (RSRC, \_SB.PCI0._Y01._RW, C0RW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y01._MIN, C0MN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y01._MAX, C0MX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y01._LEN, C0LN) // _LEN: Length C0RW = One If (((PAM1 & 0x03) == 0x01)) { C0RW = Zero } C0LN = Zero If (!(PAM1 & 0x03)) { C0LN = 0x4000 } CreateBitField (RSRC, \_SB.PCI0._Y02._RW, C4RW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y02._MIN, C4MN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y02._MAX, C4MX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y02._LEN, C4LN) // _LEN: Length C4RW = One If (((PAM1 & 0x30) == 0x10)) { C4RW = Zero } C4LN = Zero If (!(PAM1 & 0x30)) { C4LN = 0x4000 } CreateBitField (RSRC, \_SB.PCI0._Y03._RW, C8RW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y03._MIN, C8MN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y03._MAX, C8MX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y03._LEN, C8LN) // _LEN: Length C8RW = One If (((PAM2 & 0x03) == 0x01)) { C8RW = Zero } C8LN = Zero If (!(PAM2 & 0x03)) { C8LN = 0x4000 } CreateBitField (RSRC, \_SB.PCI0._Y04._RW, CCRW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y04._MIN, CCMN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y04._MAX, CCMX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y04._LEN, CCLN) // _LEN: Length CCRW = One If (((PAM2 & 0x30) == 0x10)) { CCRW = Zero } CCLN = Zero If (!(PAM2 & 0x30)) { CCLN = 0x4000 } CreateBitField (RSRC, \_SB.PCI0._Y05._RW, D0RW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y05._MIN, D0MN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y05._MAX, D0MX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y05._LEN, D0LN) // _LEN: Length D0RW = One If (((PAM3 & 0x03) == 0x01)) { D0RW = Zero } D0LN = Zero If (!(PAM3 & 0x03)) { D0LN = 0x4000 } CreateBitField (RSRC, \_SB.PCI0._Y06._RW, D4RW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y06._MIN, D4MN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y06._MAX, D4MX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y06._LEN, D4LN) // _LEN: Length D4RW = One If (((PAM3 & 0x30) == 0x10)) { D4RW = Zero } D4LN = Zero If (!(PAM3 & 0x30)) { D4LN = 0x4000 } CreateBitField (RSRC, \_SB.PCI0._Y07._RW, D8RW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y07._MIN, D8MN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y07._MAX, D8MX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y07._LEN, D8LN) // _LEN: Length D8RW = One If (((PAM4 & 0x03) == 0x01)) { D8RW = Zero } D8LN = Zero If (!(PAM4 & 0x03)) { D8LN = 0x4000 } CreateBitField (RSRC, \_SB.PCI0._Y08._RW, DCRW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y08._MIN, DCMN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y08._MAX, DCMX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y08._LEN, DCLN) // _LEN: Length DCRW = One If (((PAM4 & 0x30) == 0x10)) { DCRW = Zero } DCLN = Zero If (!(PAM4 & 0x30)) { DCLN = 0x4000 } CreateBitField (RSRC, \_SB.PCI0._Y09._RW, E0RW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y09._MIN, E0MN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y09._MAX, E0MX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y09._LEN, E0LN) // _LEN: Length E0RW = One If (((PAM5 & 0x03) == 0x01)) { E0RW = Zero } E0LN = Zero If (!(PAM5 & 0x03)) { E0LN = 0x4000 } CreateBitField (RSRC, \_SB.PCI0._Y0A._RW, E4RW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y0A._MIN, E4MN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y0A._MAX, E4MX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y0A._LEN, E4LN) // _LEN: Length E4RW = One If (((PAM5 & 0x30) == 0x10)) { E4RW = Zero } E4LN = Zero If (!(PAM5 & 0x30)) { E4LN = 0x4000 } CreateBitField (RSRC, \_SB.PCI0._Y0B._RW, E8RW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y0B._MIN, E8MN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y0B._MAX, E8MX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y0B._LEN, E8LN) // _LEN: Length E8RW = One If (((PAM6 & 0x03) == 0x01)) { E8RW = Zero } E8LN = Zero If (!(PAM6 & 0x03)) { E8LN = 0x4000 } CreateBitField (RSRC, \_SB.PCI0._Y0C._RW, ECRW) // _RW_: Read-Write Status CreateDWordField (RSRC, \_SB.PCI0._Y0C._MIN, ECMN) // _MIN: Minimum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y0C._MAX, ECMX) // _MAX: Maximum Base Address CreateDWordField (RSRC, \_SB.PCI0._Y0C._LEN, ECLN) // _LEN: Length ECRW = One If (((PAM6 & 0x30) == 0x10)) { ECRW = Zero } ECLN = Zero If (!(PAM6 & 0x30)) { ECLN = 0x4000 } Return (RSRC) /* \_SB_.PCI0.RSRC */ } OperationRegion (VNBR, PCI_Config, 0x00, 0x0100) Field (VNBR, ByteAcc, NoLock, Preserve) { Offset (0xA8), R08, 8, Offset (0xD8), Z000, 16, Z001, 16, Z002, 16, Z003, 1, Z004, 1, Z005, 6, Z006, 8, Z007, 16, Z008, 16, Z009, 16, Z00A, 1, Z00B, 1, Z00C, 6, Z00D, 8, Z00E, 16, Z00F, 16, Z00G, 16, Z00H, 1, Z00I, 1, Z00J, 6, Z00K, 8, Z00L, 16, Z00M, 16, Z00N, 16, Z00O, 1, Z00P, 1, Z00Q, 6, Z00R, 8 } Name (_PRT, Package (0x06) // _PRT: PCI Routing Table { Package (0x04) { 0x0003FFFF, 0x00, \_SB.PCI0.ISA.LNK1, 0x00 }, Package (0x04) { 0x0004FFFF, 0x00, \_SB.PCI0.ISA.LNK2, 0x00 }, Package (0x04) { 0x0005FFFF, 0x00, \_SB.PCI0.ISA.LNK3, 0x00 }, Package (0x04) { 0x0006FFFF, 0x00, \_SB.PCI0.ISA.LNK1, 0x00 }, Package (0x04) { 0x0006FFFF, 0x01, \_SB.PCI0.ISA.LNK2, 0x00 }, Package (0x04) { 0x0014FFFF, 0x00, \_SB.PCI0.ISA.LNKU, 0x00 } }) Device (ISA) { Mutex (PSMX, 0x00) OperationRegion (SMI0, SystemIO, 0x00008038, 0x00000002) Field (SMI0, AnyAcc, NoLock, Preserve) { SMIC, 8 } OperationRegion (SMI1, SystemMemory, 0x0AFFFEBD, 0x00000090) Field (SMI1, AnyAcc, NoLock, Preserve) { BCMD, 8, DID, 32, INFO, 1024 } Field (SMI1, AnyAcc, NoLock, Preserve) { AccessAs (ByteAcc, 0x00), Offset (0x05), INF, 8 } Method (PHS, 1, Serialized) { Acquire (PSMX, 0xFFFF) BCMD = Arg0 DID = 0x00 SMIC = Zero BCMD = 0x00 Release (PSMX) Return (INFO) /* \_SB_.PCI0.ISA_.INFO */ } Device (SIO) { Name (_HID, EisaId ("PNP0A05") /* Generic Container Device */) // _HID: Hardware ID Device (LPT) { Name (MCD, 0x12) Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID Name (_UID, 0x00) // _UID: Unique ID Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If ((_STA () & 0x02)) { Acquire (PSMX, 0xFFFF) BCMD = 0x00 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.LPT_.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Return (RSRC) /* \_SB_.PCI0.ISA_.SIO_.LPT_.RSRC */ } Method (B_SR, 1, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x01 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.LPT_.MCD_ */ INFO = Arg0 SMIC = Zero Release (PSMX) } Method (B_PR, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x02 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.LPT_.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Method (B_DI, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x03 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.LPT_.MCD_ */ SMIC = Zero Release (PSMX) } Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PSMX, 0xFFFF) BCMD = 0x04 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.LPT_.MCD_ */ SMIC = Zero Local0 = INF /* \_SB_.PCI0.ISA_.INF_ */ Release (PSMX) Return (Local0) } Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0100, // Range Minimum 0x0100, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {} }) } Device (LPTB) { Name (MCD, 0x13) Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID Name (_UID, 0x01) // _UID: Unique ID Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0100, // Range Minimum 0x0100, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {} }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If ((_STA () & 0x02)) { Acquire (PSMX, 0xFFFF) BCMD = 0x00 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.LPTB.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Return (RSRC) /* \_SB_.PCI0.ISA_.SIO_.LPTB.RSRC */ } Method (B_SR, 1, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x01 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.LPTB.MCD_ */ INFO = Arg0 SMIC = Zero Release (PSMX) } Method (B_PR, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x02 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.LPTB.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Method (B_DI, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x03 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.LPTB.MCD_ */ SMIC = Zero Release (PSMX) } Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PSMX, 0xFFFF) BCMD = 0x04 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.LPTB.MCD_ */ SMIC = Zero Local0 = INF /* \_SB_.PCI0.ISA_.INF_ */ Release (PSMX) Return (Local0) } } Device (ECP) { Name (MCD, 0x14) Name (_HID, EisaId ("PNP0401") /* ECP Parallel Port */) // _HID: Hardware ID Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0100, // Range Minimum 0x0100, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {} DMA (Compatibility, NotBusMaster, Transfer8, ) {} }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If ((_STA () & 0x02)) { Acquire (PSMX, 0xFFFF) BCMD = 0x00 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.ECP_.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Return (RSRC) /* \_SB_.PCI0.ISA_.SIO_.ECP_.RSRC */ } Method (B_SR, 1, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x01 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.ECP_.MCD_ */ INFO = Arg0 SMIC = Zero Release (PSMX) } Method (B_PR, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x02 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.ECP_.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Method (B_DI, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x03 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.ECP_.MCD_ */ SMIC = Zero Release (PSMX) } Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PSMX, 0xFFFF) BCMD = 0x04 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.ECP_.MCD_ */ SMIC = Zero Local0 = INF /* \_SB_.PCI0.ISA_.INF_ */ Release (PSMX) Return (Local0) } } Device (EPP) { Name (MCD, 0x15) Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0100, // Range Minimum 0x0100, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {} }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If ((_STA () & 0x02)) { Acquire (PSMX, 0xFFFF) BCMD = 0x00 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.EPP_.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Return (RSRC) /* \_SB_.PCI0.ISA_.SIO_.EPP_.RSRC */ } Method (B_SR, 1, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x01 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.EPP_.MCD_ */ INFO = Arg0 SMIC = Zero Release (PSMX) } Method (B_PR, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x02 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.EPP_.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Method (B_DI, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x03 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.EPP_.MCD_ */ SMIC = Zero Release (PSMX) } Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PSMX, 0xFFFF) BCMD = 0x04 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.EPP_.MCD_ */ SMIC = Zero Local0 = INF /* \_SB_.PCI0.ISA_.INF_ */ Release (PSMX) Return (Local0) } } Device (COMA) { Name (MCD, 0x10) Name (_HID, EisaId ("PNP0500") /* Standard PC COM Serial Port */) // _HID: Hardware ID Name (_UID, 0x01) // _UID: Unique ID Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0100, // Range Minimum 0x0100, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {} }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If ((_STA () & 0x02)) { Acquire (PSMX, 0xFFFF) BCMD = 0x00 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.COMA.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Return (RSRC) /* \_SB_.PCI0.ISA_.SIO_.COMA.RSRC */ } Method (B_SR, 1, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x01 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.COMA.MCD_ */ INFO = Arg0 SMIC = Zero Release (PSMX) } Method (B_PR, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x02 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.COMA.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Method (B_DI, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x03 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.COMA.MCD_ */ SMIC = Zero Release (PSMX) } Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PSMX, 0xFFFF) BCMD = 0x04 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.COMA.MCD_ */ SMIC = Zero Local0 = INF /* \_SB_.PCI0.ISA_.INF_ */ Release (PSMX) Return (Local0) } } Device (IRDA) { Name (MCD, 0x0D) Name (_HID, EisaId ("PNP0510") /* Generic IRDA-compatible Device */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0100, // Range Minimum 0x0100, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {} }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If ((_STA () & 0x02)) { Acquire (PSMX, 0xFFFF) BCMD = 0x00 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.IRDA.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Return (RSRC) /* \_SB_.PCI0.ISA_.SIO_.IRDA.RSRC */ } Method (B_SR, 1, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x01 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.IRDA.MCD_ */ INFO = Arg0 SMIC = Zero Release (PSMX) } Method (B_PR, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x02 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.IRDA.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Method (B_DI, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x03 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.IRDA.MCD_ */ SMIC = Zero Release (PSMX) } Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PSMX, 0xFFFF) BCMD = 0x04 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.IRDA.MCD_ */ SMIC = Zero Local0 = INF /* \_SB_.PCI0.ISA_.INF_ */ Release (PSMX) Return (Local0) } } Device (BASK) { Name (MCD, 0x0E) Name (_HID, EisaId ("ALI5123")) // _HID: Hardware ID Name (_CID, EisaId ("PNP0510") /* Generic IRDA-compatible Device */) // _CID: Compatible ID Name (_UID, 0x02) // _UID: Unique ID Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0100, // Range Minimum 0x0100, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {} }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If ((_STA () & 0x02)) { Acquire (PSMX, 0xFFFF) BCMD = 0x00 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.BASK.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Return (RSRC) /* \_SB_.PCI0.ISA_.SIO_.BASK.RSRC */ } Method (B_SR, 1, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x01 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.BASK.MCD_ */ INFO = Arg0 SMIC = Zero Release (PSMX) } Method (B_PR, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x02 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.BASK.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Method (B_DI, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x03 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.BASK.MCD_ */ SMIC = Zero Release (PSMX) } Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PSMX, 0xFFFF) BCMD = 0x04 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.BASK.MCD_ */ SMIC = Zero Local0 = INF /* \_SB_.PCI0.ISA_.INF_ */ Release (PSMX) Return (Local0) } } Device (FIR) { Name (MCD, 0x11) Name (_HID, EisaId ("ALI5123")) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0100, // Range Minimum 0x0100, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {} DMA (Compatibility, NotBusMaster, Transfer8, ) {} }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If ((_STA () & 0x02)) { Acquire (PSMX, 0xFFFF) BCMD = 0x00 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.FIR_.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Return (RSRC) /* \_SB_.PCI0.ISA_.SIO_.FIR_.RSRC */ } Method (B_SR, 1, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x01 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.FIR_.MCD_ */ INFO = Arg0 SMIC = Zero Release (PSMX) } Method (B_PR, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x02 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.FIR_.MCD_ */ SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Method (B_DI, 0, NotSerialized) { Acquire (PSMX, 0xFFFF) BCMD = 0x03 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.FIR_.MCD_ */ SMIC = Zero Release (PSMX) } Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PSMX, 0xFFFF) BCMD = 0x04 DID = MCD /* \_SB_.PCI0.ISA_.SIO_.FIR_.MCD_ */ SMIC = Zero Local0 = INF /* \_SB_.PCI0.ISA_.INF_ */ Release (PSMX) Return (Local0) } } } OperationRegion (PMIF, SystemIO, 0x68, 0x08) Field (PMIF, ByteAcc, NoLock, Preserve) { PMUD, 8, Offset (0x04), PMUC, 8, Offset (0x08) } OperationRegion (DELY, SystemIO, 0xED, 0x01) Field (DELY, ByteAcc, NoLock, Preserve) { ED, 8 } Method (PMRD, 1, NotSerialized) { Acquire (PSMX, 0xFFFF) Local0 = Arg0 Local6 = 0x07D0 Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x13 While (((Local1 != 0x00) && (Local6 != 0x00))) { Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x13 If (Local2 = (Local1 & 0x01)) { Local2 = PMUD /* \_SB_.PCI0.ISA_.PMUD */ } Local6-- } Local5 = 0x14 Local4 = 0x00 While (((Local4 == 0x00) && (Local5 != 0x00))) { PMUC = 0x80 Local6 = 0x07D0 Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x02 While (((Local1 != 0x00) && (Local6 != 0x00))) { Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x02 Local6-- } Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x20 If ((Local1 == 0x00)) { PMUD = Local0 Local6 = 0x07D0 Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x01 While (((Local1 != 0x01) && (Local6 != 0x00))) { Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x01 Local6-- } Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x20 If ((Local1 == 0x00)) { Local3 = PMUD /* \_SB_.PCI0.ISA_.PMUD */ Local6 = 0x07D0 Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x10 While (((Local1 != 0x00) && (Local6 != 0x00))) { Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x10 Local6-- } Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x20 If ((Local1 == 0x00)) { Local4 = 0x01 } } Local5-- } } Release (PSMX) Return (Local3) } Method (PMWT, 2, NotSerialized) { Acquire (PSMX, 0xFFFF) Local0 = Arg0 Local3 = Arg1 Local6 = 0x07D0 Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x13 While (((Local1 != 0x00) && (Local6 != 0x00))) { Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x13 If (Local2 = (Local1 & 0x01)) { Local2 = PMUD /* \_SB_.PCI0.ISA_.PMUD */ } Local6-- } Local5 = 0x14 Local4 = 0x00 While (((Local4 == 0x00) && (Local5 != 0x00))) { PMUC = 0x81 Local6 = 0x07D0 Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x02 While (((Local1 != 0x00) && (Local6 != 0x00))) { Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x02 Local6-- } Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x20 If ((Local1 == 0x00)) { PMUD = Local0 Local6 = 0x07D0 Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x02 While (((Local1 != 0x00) && (Local6 != 0x00))) { Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x02 Local6-- } Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x20 If ((Local1 == 0x00)) { PMUD = Local3 Local6 = 0x07D0 Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x12 While (((Local1 != 0x00) && (Local6 != 0x00))) { Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x12 Local6-- } Local1 = PMUC /* \_SB_.PCI0.ISA_.PMUC */ Local1 &= 0x20 If ((Local1 == 0x00)) { Local4 = 0x01 } } Local5-- } } Release (PSMX) } Name (_ADR, 0x00070000) // _ADR: Address Device (DMAC) { Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x0081, // Range Minimum 0x0081, // Range Maximum 0x01, // Alignment 0x0F, // Length ) IO (Decode16, 0x00C0, // Range Minimum 0x00C0, // Range Maximum 0x01, // Alignment 0x20, // Length ) DMA (Compatibility, NotBusMaster, Transfer16, ) {4} }) } Device (PIC) { Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0020, // Range Minimum 0x0020, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A0, // Range Minimum 0x00A0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IRQ (Edge, ActiveHigh, Exclusive, ) {2} }) } Device (TIME) { Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x01, // Alignment 0x04, // Length ) IRQ (Edge, ActiveHigh, Exclusive, ) {0} }) } Device (RTC) { Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x02, // Length ) IRQ (Edge, ActiveHigh, Exclusive, ) {8} }) } Device (MATH) { Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x00F0, // Range Minimum 0x00F0, // Range Maximum 0x01, // Alignment 0x0F, // Length ) IRQ (Edge, ActiveHigh, Exclusive, ) {13} }) } Device (SPKR) { Name (_HID, EisaId ("PNP0800") /* Microsoft Sound System Compatible Device */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0061, // Range Minimum 0x0061, // Range Maximum 0x01, // Alignment 0x01, // Length ) }) } Device (JPKB) { Name (_HID, EisaId ("PNP0320")) // _HID: Hardware ID Name (_CID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _CID: Compatible ID Method (_STA, 0, NotSerialized) // _STA: Status { If (((\_SB.PCI0.PM.KBS2 == Zero) && (\_SB.PCI0.PM.KBS1 == One))) { Return (0x0F) } Else { Return (0x00) } } 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} }) } Device (USKB) { Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID Name (_CID, EisaId ("PNP0320")) // _CID: Compatible ID Method (_STA, 0, NotSerialized) // _STA: Status { If (((\_SB.PCI0.PM.KBS2 == Zero) && (\_SB.PCI0.PM.KBS1 == One))) { Return (0x00) } Else { Return (0x0F) } } 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} }) } Device (MSE0) { Name (MCD, 0x0F) Name (_HID, EisaId ("AUI0200")) // _HID: Hardware ID Name (_CID, EisaId ("PNP0F0E")) // _CID: Compatible ID Name (RSRC, ResourceTemplate () { IRQNoFlags () {} }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (((_STA () & 0x02) == Zero)) { Return (RSRC) /* \_SB_.PCI0.ISA_.MSE0.RSRC */ } Else { Acquire (PSMX, 0xFFFF) BCMD = 0x00 DID = 0x0F SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { Acquire (PSMX, 0xFFFF) BCMD = 0x01 DID = 0x0F INFO = Arg0 SMIC = Zero Release (PSMX) } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Acquire (PSMX, 0xFFFF) BCMD = 0x02 DID = 0x0F SMIC = Zero Local0 = INFO /* \_SB_.PCI0.ISA_.INFO */ Release (PSMX) Return (Local0) } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Acquire (PSMX, 0xFFFF) BCMD = 0x03 DID = 0x0F SMIC = Zero Release (PSMX) } Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PSMX, 0xFFFF) BCMD = 0x04 DID = 0x0F SMIC = Zero Local0 = INF /* \_SB_.PCI0.ISA_.INF_ */ Release (PSMX) Return (Local0) } } Device (SYSR) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { 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, 0x00B1, // Range Minimum 0x00B1, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0200, // Range Minimum 0x0200, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0202, // Range Minimum 0x0202, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x04D0, // Range Minimum 0x04D0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x040B, // Range Minimum 0x040B, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0480, // Range Minimum 0x0480, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x04D6, // Range Minimum 0x04D6, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x8000, // Range Minimum 0x8000, // Range Maximum 0x01, // Alignment 0x40, // Length ) IO (Decode16, 0x8040, // Range Minimum 0x8040, // Range Maximum 0x01, // Alignment 0x20, // Length ) IO (Decode16, 0x14B8, // Range Minimum 0x14B8, // Range Maximum 0x01, // Alignment 0x48, // Length ) Memory32Fixed (ReadOnly, 0xFFF80000, // Address Base 0x00080000, // Address Length ) }) } Device (LNK1) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x01) // _UID: Unique ID Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {9} }) Name (RSRC, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y0D) {} }) Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Debug = "LNK1_DIS" PIR1 = 0x00 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Debug = "LNK1_CRS" CreateWordField (RSRC, \_SB.PCI0.ISA.LNK1._Y0D._INT, IRQ0) // _INT: Interrupts Local0 = PIR1 /* \_SB_.PCI0.ISA_.PIR1 */ Local1 = DerefOf (PIRI [Local0]) If (Local1) { IRQ0 = (0x01 << Local1) } Return (RSRC) /* \_SB_.PCI0.ISA_.LNK1.RSRC */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { Debug = "LNK1_CRS" CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PIR1 = DerefOf (PIIR [Local0]) } Method (_STA, 0, NotSerialized) // _STA: Status { Debug = "LNK1_STA" If (PIR1) { Return (0x0B) } Return (0x09) } } Device (LNK2) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {11} }) Name (RSRC, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y0E) {} }) Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Debug = "LNK2_DIS" PIR2 = 0x00 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Debug = "LNK2_CRS" CreateWordField (RSRC, \_SB.PCI0.ISA.LNK2._Y0E._INT, IRQ0) // _INT: Interrupts Local0 = PIR2 /* \_SB_.PCI0.ISA_.PIR2 */ Local1 = DerefOf (PIRI [Local0]) If (Local1) { IRQ0 = (0x01 << Local1) } Return (RSRC) /* \_SB_.PCI0.ISA_.LNK2.RSRC */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { Debug = "LNK2_SRS" CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PIR2 = DerefOf (PIIR [Local0]) } Method (_STA, 0, NotSerialized) // _STA: Status { Debug = "LNK2_STA" If (PIR2) { Return (0x0B) } Return (0x09) } } Device (LNK3) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x03) // _UID: Unique ID Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {10} }) Name (RSRC, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y0F) {} }) Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Debug = "LNK3_DIS" PIR3 = 0x00 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Debug = "LNK3_CRS" CreateWordField (RSRC, \_SB.PCI0.ISA.LNK3._Y0F._INT, IRQ0) // _INT: Interrupts Local0 = PIR3 /* \_SB_.PCI0.ISA_.PIR3 */ Local1 = DerefOf (PIRI [Local0]) If (Local1) { IRQ0 = (0x01 << Local1) } Return (RSRC) /* \_SB_.PCI0.ISA_.LNK3.RSRC */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { Debug = "LNK3_SRS" CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PIR3 = DerefOf (PIIR [Local0]) } Method (_STA, 0, NotSerialized) // _STA: Status { Debug = "LNK3_STA" If (PIR3) { Return (0x0B) } Return (0x09) } } Device (LNKU) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x09) // _UID: Unique ID Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings { IRQ (Level, ActiveLow, Shared, ) {5} }) Name (RSRC, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y10) {} }) Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Debug = "LNKU_DIS" PIRU = 0x00 } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Debug = "LNKU_CRS" CreateWordField (RSRC, \_SB.PCI0.ISA.LNKU._Y10._INT, IRQ0) // _INT: Interrupts Local0 = PIRU /* \_SB_.PCI0.ISA_.PIRU */ Local1 = DerefOf (PIRI [Local0]) If (Local1) { IRQ0 = (0x01 << Local1) } Return (RSRC) /* \_SB_.PCI0.ISA_.LNKU.RSRC */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { Debug = "LNKU_SRS" CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Local0-- PIRU = DerefOf (PIIR [Local0]) } Method (_STA, 0, NotSerialized) // _STA: Status { Debug = "LNKU_STA" If (PIRU) { Return (0x0B) } Return (0x09) } } OperationRegion (PIRX, PCI_Config, 0x44, 0x34) Field (PIRX, DWordAcc, Lock, Preserve) { AccessAs (ByteAcc, 0x00), PIRH, 4, Offset (0x04), PIR1, 4, PIR2, 4, PIR3, 4, PIR4, 4, PIR5, 4, PIR6, 4, PIR7, 4, PIR8, 4, Offset (0x30), PIRU, 4 } Name (PIRI, Package (0x10) { 0x00, 0x09, 0x03, 0x0A, 0x04, 0x05, 0x07, 0x06, 0x01, 0x0B, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x0F }) Name (PIIR, Package (0x10) { 0x00, 0x08, 0x00, 0x02, 0x04, 0x05, 0x07, 0x06, 0x00, 0x01, 0x03, 0x09, 0x0B, 0x00, 0x0D, 0x0F }) Scope (\_GPE) { Mutex (GLCK, 0x00) Method (_L02, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Acquire (\_GPE.GLCK, 0xFFFF) Local0 = \_SB.PCI0.ISA.PMRD (0xA8) Local0 &= 0x01 If ((Local0 == 0x01)) { Local0 = (\_SB.PCI0.ISA.PMRD (0xA8) & 0xFE) \_SB.PCI0.ISA.PMWT (0xA8, Local0) \_SB.PCI0.ISA.PMWT (0xF0, Zero) Local0 = (\_SB.PCI0.ISA.PMRD (0xAC) & 0xEF) \_SB.PCI0.ISA.PMWT (0xAC, Local0) \_SB.PCI0.ISA.PMWT (0xF0, Zero) Local1 = (\_SB.PCI0.ISA.PMRD (0xB5) & 0x01) If ((Local1 == 0x01)) { Local0 = (\_SB.PCI0.ISA.PMRD (0xB7) & 0xFE) \_SB.PCI0.ISA.PMWT (0xB7, Local0) } Else { Local0 = (\_SB.PCI0.ISA.PMRD (0xB7) | 0x01) \_SB.PCI0.ISA.PMWT (0xB7, Local0) } Notify (\_SB.LID, 0x80) // Status Change } Local0 = (\_SB.PCI0.ISA.PMRD (0xAE) & 0xEF) \_SB.PCI0.ISA.PMWT (0xEF, Local0) \_SB.PCI0.ISA.PMWT (0xF0, Zero) Release (\_GPE.GLCK) } Method (_L09, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0, 0x02) // Device Wake } Method (_L18, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Acquire (\_GPE.GLCK, 0xFFFF) Local0 = \_SB.PCI0.ISA.PMRD (0xAB) Local4 = \_SB.PCI0.ISA.PMRD (0xAD) Local1 = \_SB.PCI0.ISA.PMRD (0xAF) Local2 = (Local1 & 0x04) Local3 = (Local1 & 0x02) Local5 = (Local1 & 0x01) If (((Local2 == 0x04) || ((Local3 == 0x02) || (Local5 == 0x01)))) { Local4 = \_SB.PCI0.ISA.PMRD (0xE7) If ((Local4 < 0x4F)) { \_SB.PCI0.ISA.PMWT (0xE5, 0x00) \_SB.PCI0.ISA.PMWT (0xE4, 0x4F) \_SB.PCI0.LREN = Zero } ElseIf ((Local4 < 0x55)) { Local6 = (0x4F - 0x05) \_SB.PCI0.ISA.PMWT (0xE5, Local6) \_SB.PCI0.ISA.PMWT (0xE4, 0x55) \_SB.PCI0.LRRV = 0x06 \_SB.PCI0.LREN = One } Else { Local6 = (0x55 - 0x05) \_SB.PCI0.ISA.PMWT (0xE5, Local6) \_SB.PCI0.ISA.PMWT (0xE4, 0x64) \_SB.PCI0.LRRV = 0x02 \_SB.PCI0.LREN = One } Local5 = (\_SB.PCI0.ISA.PMRD (0xAB) & 0xEF) \_SB.PCI0.ISA.PMWT (0xAB, Local5) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) Local5 = (\_SB.PCI0.ISA.PMRD (0xAC) & 0xEF) \_SB.PCI0.ISA.PMWT (0xAC, Local5) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) Local5 = (\_SB.PCI0.ISA.PMRD (0xAF) & 0xFC) \_SB.PCI0.ISA.PMWT (0xAF, Local5) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) Local5 = (\_SB.PCI0.ISA.PMRD (0xAD) & 0xFE) \_SB.PCI0.ISA.PMWT (0xAD, Local5) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) Local5 = (\_SB.PCI0.ISA.PMRD (0xAE) & 0xFE) \_SB.PCI0.ISA.PMWT (0xAE, Local5) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) } If (Local3 = (Local0 & 0x01)) { Notify (\_SB.ADP, 0x80) // Status Change Local2 = (\_SB.PCI0.ISA.PMRD (0xAB) & 0xFE) \_SB.PCI0.ISA.PMWT (0xAB, Local2) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) } If (Local3 = (Local0 & 0x02)) { Local1 = \_SB.PCI0.ISA.PMRD (0xA1) Local4 = \_SB.PCI0.ISA.PMRD (0xF1) If (((Local3 = (Local1 & 0x01)) != (Local5 = (Local4 & 0x01)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA1) \_SB.PCI0.ISA.PMWT (0xF1, Local6) Notify (\_SB.BAT0, 0x81) // Information Change } If (((Local3 = (Local1 & 0x02)) != (Local5 = (Local4 & 0x02)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA1) \_SB.PCI0.ISA.PMWT (0xF1, Local6) Notify (\_SB.BAT0, 0x80) // Status Change } If (((Local3 = (Local1 & 0x04)) != (Local5 = (Local4 & 0x04)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA1) \_SB.PCI0.ISA.PMWT (0xF1, Local6) Notify (\_SB.BAT0, 0x80) // Status Change } If (((Local3 = (Local1 & 0x08)) != (Local5 = (Local4 & 0x08)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA1) \_SB.PCI0.ISA.PMWT (0xF1, Local6) Notify (\_SB.BAT0, 0x80) // Status Change } If (((Local3 = (Local1 & 0x10)) != (Local5 = (Local4 & 0x10)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA1) \_SB.PCI0.ISA.PMWT (0xF1, Local6) Notify (\_SB.BAT0, 0x80) // Status Change } If (((Local3 = (Local1 & 0x20)) != (Local5 = (Local4 & 0x20)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA1) \_SB.PCI0.ISA.PMWT (0xF1, Local6) Notify (\_SB.BAT0, 0x80) // Status Change } If (((Local3 = (Local1 & 0x40)) != (Local5 = (Local4 & 0x40)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA1) \_SB.PCI0.ISA.PMWT (0xF1, Local6) Notify (\_SB.BAT0, 0x80) // Status Change } If (((Local3 = (Local1 & 0x80)) != (Local5 = (Local4 & 0x80)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA1) \_SB.PCI0.ISA.PMWT (0xF1, Local6) Notify (\_SB.BAT0, 0x80) // Status Change } Local2 = (\_SB.PCI0.ISA.PMRD (0xAB) & 0xFD) \_SB.PCI0.ISA.PMWT (0xAB, Local2) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) } If (Local3 = (Local0 & 0x04)) { Local1 = \_SB.PCI0.ISA.PMRD (0xA2) Local4 = \_SB.PCI0.ISA.PMRD (0xF2) If (((Local3 = (Local1 & 0x01)) != (Local5 = (Local4 & 0x01)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA2) \_SB.PCI0.ISA.PMWT (0xF2, Local6) Notify (\_SB.BAT1, 0x81) // Information Change } If (((Local3 = (Local1 & 0x02)) != (Local5 = (Local4 & 0x02)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA2) \_SB.PCI0.ISA.PMWT (0xF2, Local6) Notify (\_SB.BAT1, 0x80) // Status Change } If (((Local3 = (Local1 & 0x04)) != (Local5 = (Local4 & 0x04)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA2) \_SB.PCI0.ISA.PMWT (0xF2, Local6) Notify (\_SB.BAT1, 0x80) // Status Change } If (((Local3 = (Local1 & 0x08)) != (Local5 = (Local4 & 0x08)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA2) \_SB.PCI0.ISA.PMWT (0xF2, Local6) Notify (\_SB.BAT1, 0x80) // Status Change } If (((Local3 = (Local1 & 0x10)) != (Local5 = (Local4 & 0x10)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA2) \_SB.PCI0.ISA.PMWT (0xF2, Local6) Notify (\_SB.BAT1, 0x80) // Status Change } If (((Local3 = (Local1 & 0x20)) != (Local5 = (Local4 & 0x20)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA2) \_SB.PCI0.ISA.PMWT (0xF2, Local6) Notify (\_SB.BAT1, 0x80) // Status Change } If (((Local3 = (Local1 & 0x40)) != (Local5 = (Local4 & 0x40)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA2) \_SB.PCI0.ISA.PMWT (0xF2, Local6) Notify (\_SB.BAT1, 0x80) // Status Change } If (((Local3 = (Local1 & 0x80)) != (Local5 = (Local4 & 0x80)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA2) \_SB.PCI0.ISA.PMWT (0xF2, Local6) Notify (\_SB.BAT1, 0x80) // Status Change } Local2 = (\_SB.PCI0.ISA.PMRD (0xAB) & 0xFB) \_SB.PCI0.ISA.PMWT (0xAB, Local2) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) } If (Local3 = (Local0 & 0x08)) { Local1 = \_SB.PCI0.ISA.PMRD (0xA3) Local4 = \_SB.PCI0.ISA.PMRD (0xF3) If (((Local3 = (Local1 & 0x01)) != (Local5 = (Local4 & 0x01)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA3) \_SB.PCI0.ISA.PMWT (0xF3, Local6) Notify (\_SB.BAT2, 0x81) // Information Change } If (((Local3 = (Local1 & 0x02)) != (Local5 = (Local4 & 0x02)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA3) \_SB.PCI0.ISA.PMWT (0xF3, Local6) Notify (\_SB.BAT2, 0x80) // Status Change } If (((Local3 = (Local1 & 0x04)) != (Local5 = (Local4 & 0x04)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA3) \_SB.PCI0.ISA.PMWT (0xF3, Local6) Notify (\_SB.BAT2, 0x80) // Status Change } If (((Local3 = (Local1 & 0x08)) != (Local5 = (Local4 & 0x08)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA3) \_SB.PCI0.ISA.PMWT (0xF3, Local6) Notify (\_SB.BAT2, 0x80) // Status Change } If (((Local3 = (Local1 & 0x10)) != (Local5 = (Local4 & 0x10)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA3) \_SB.PCI0.ISA.PMWT (0xF3, Local6) Notify (\_SB.BAT2, 0x80) // Status Change } If (((Local3 = (Local1 & 0x20)) != (Local5 = (Local4 & 0x20)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA3) \_SB.PCI0.ISA.PMWT (0xF3, Local6) Notify (\_SB.BAT2, 0x80) // Status Change } If (((Local3 = (Local1 & 0x40)) != (Local5 = (Local4 & 0x40)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA3) \_SB.PCI0.ISA.PMWT (0xF3, Local6) Notify (\_SB.BAT2, 0x80) // Status Change } If (((Local3 = (Local1 & 0x80)) != (Local5 = (Local4 & 0x80)))) { Local6 = \_SB.PCI0.ISA.PMRD (0xA3) \_SB.PCI0.ISA.PMWT (0xF3, Local6) Notify (\_SB.BAT2, 0x80) // Status Change } Local2 = (\_SB.PCI0.ISA.PMRD (0xAB) & 0xF7) \_SB.PCI0.ISA.PMWT (0xAB, Local2) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) } Local1 = (Local0 & 0x10) Local2 = \_SB.PCI0.ISA.PMRD (0xAD) Local2 &= 0x10 If (((Local1 == 0x10) || (Local2 == 0x10))) { Local2 = (\_SB.PCI0.ISA.PMRD (0xAB) & 0xEF) \_SB.PCI0.ISA.PMWT (0xAB, Local2) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) Local2 = (\_SB.PCI0.ISA.PMRD (0xAD) & 0xEF) \_SB.PCI0.ISA.PMWT (0xAD, Local2) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) Local1 = \_SB.PCI0.ISA.PMRD (0xA9) Local0 = \_SB.PCI0.ISA.PMRD (0xA8) If (Local3 = (Local0 & 0x01)) { Local0 = (\_SB.PCI0.ISA.PMRD (0xA8) & 0xFE) \_SB.PCI0.ISA.PMWT (0xA8, Local0) \_SB.PCI0.ISA.PMWT (0xF0, Zero) Local0 = (\_SB.PCI0.ISA.PMRD (0xAC) & 0xEF) \_SB.PCI0.ISA.PMWT (0xAC, Local0) \_SB.PCI0.ISA.PMWT (0xF0, Zero) Local1 = (\_SB.PCI0.ISA.PMRD (0xB5) & 0x01) If ((Local1 == 0x01)) { Local0 = (\_SB.PCI0.ISA.PMRD (0xB7) & 0xFE) \_SB.PCI0.ISA.PMWT (0xB7, Local0) } Else { Local0 = (\_SB.PCI0.ISA.PMRD (0xB7) | 0x01) \_SB.PCI0.ISA.PMWT (0xB7, Local0) } Notify (\_SB.LID, 0x80) // Status Change } Release (\_GPE.GLCK) } } } } Device (CARD) { Name (_ADR, 0x00030000) // _ADR: Address OperationRegion (CCRD, PCI_Config, 0x00, 0x84) Field (CCRD, DWordAcc, NoLock, Preserve) { Offset (0x04), R04, 32, Offset (0x10), R10, 32, Offset (0x3C), R3C, 32, Offset (0x44), R44, 32 } Method (_INI, 0, NotSerialized) // _INI: Initialize { R3C |= 0xFF R44 &= 0xFFFF0000 } } Device (SUND) { Name (_ADR, 0x00040000) // _ADR: Address } Device (VGA) { Name (_ADR, 0x00050000) // _ADR: Address } Device (MPCI) { Name (_ADR, 0x00060000) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x09, 0x03 }) } Device (MPC2) { Name (_ADR, 0x00060001) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x09, 0x03 }) OperationRegion (RMDM, PCI_Config, 0x00, 0xFF) Field (RMDM, AnyAcc, NoLock, Preserve) { Offset (0xE1), , 7, PSTS, 1 } } Device (IDE) { Name (_ADR, 0x00100000) // _ADR: Address Name (UDMT, Package (0x05) { 0x1E, 0x2D, 0x3C, 0x5A, 0x78 }) Name (PIOT, Package (0x05) { 0x78, 0xB4, 0xF0, 0x017F, 0x0258 }) Name (PIOC, Package (0x05) { 0x04, 0x06, 0x08, 0x0D, 0x10 }) Name (CBCT, Package (0x05) { 0x31, 0x33, 0x01, 0x03, 0x0A }) Name (DACT, Package (0x05) { 0x03, 0x03, 0x04, 0x05, 0x08 }) Name (DRCT, Package (0x05) { 0x01, 0x03, 0x04, 0x08, 0x08 }) Name (PXLM, Package (0x05) { 0x02, 0x01, 0x00, 0x00, 0x00 }) OperationRegion (PCI, PCI_Config, 0x00, 0x60) Field (PCI, ByteAcc, NoLock, Preserve) { Offset (0x09), , 4, SCHE, 1, PCHE, 1, Offset (0x0A), Offset (0x0D), IDLT, 8, Offset (0x4B), U66E, 1, Offset (0x4C), Offset (0x53), CDFI, 1, CDUD, 1, Offset (0x54), PFTH, 8, SFTH, 8, PUDC, 8, SUDC, 8, PAST, 8, PCBT, 8, PTM0, 8, PTM1, 8, SAST, 8, SCBT, 8, STM0, 8, STM1, 8 } Method (GTM, 3, NotSerialized) { Local0 = Buffer (0x14){} CreateDWordField (Local0, 0x00, PIO0) CreateDWordField (Local0, 0x04, DMA0) CreateDWordField (Local0, 0x08, PIO1) CreateDWordField (Local0, 0x0C, DMA1) CreateDWordField (Local0, 0x10, FLAG) PIO0 = Zero DMA0 = Zero PIO1 = Zero DMA1 = Zero FLAG = Zero If (Arg0) { Local1 = ((Arg0 & 0x70) >> 0x04) If ((Local1 == Zero)) { Local1 = 0x08 } Local1 += (Local2 = (Arg0 & 0x0F)) Local2 = Match (^PIOC, MLE, Local1, MTR, 0x00, 0x00) PIO0 = DerefOf (^PIOT [Local2]) If ((PIO0 <= 0xF0)) { FLAG |= 0x02 } } If ((Arg2 & 0x08)) { DMA0 = DerefOf (^UDMT [(Arg2 & 0x07)]) FLAG |= 0x01 } Else { DMA0 = PIO0 /* \_SB_.PCI0.IDE_.GTM_.PIO0 */ } If (Arg1) { Local1 = ((Arg1 & 0x70) >> 0x04) If ((Local1 == Zero)) { Local1 = 0x08 } Local1 += (Local2 = (Arg1 & 0x0F)) Local2 = Match (^PIOC, MLE, Local1, MTR, 0x00, 0x00) PIO1 = DerefOf (^PIOT [Local2]) If ((PIO1 <= 0xF0)) { FLAG |= 0x08 } } If ((Arg2 & 0x80)) { DMA1 = DerefOf (^UDMT [((Arg2 & 0x70) >> 0x04)] ) FLAG |= 0x04 } Else { DMA1 = PIO1 /* \_SB_.PCI0.IDE_.GTM_.PIO1 */ } FLAG |= 0x10 Return (Local0) } Method (STM, 3, NotSerialized) { Local7 = Buffer (0x06) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ...... } CreateByteField (Local7, 0x00, TM0) CreateByteField (Local7, 0x01, TM1) CreateByteField (Local7, 0x02, UDC) CreateByteField (Local7, 0x03, AST) CreateByteField (Local7, 0x04, CBT) CreateByteField (Local7, 0x05, U66) CreateDWordField (Arg0, 0x00, PIO0) CreateDWordField (Arg0, 0x04, DMA0) CreateDWordField (Arg0, 0x08, PIO1) CreateDWordField (Arg0, 0x0C, DMA1) CreateDWordField (Arg0, 0x10, FLAG) Local6 = FLAG /* \_SB_.PCI0.IDE_.STM_.FLAG */ Local4 = Ones If ((DMA0 || PIO0)) { If ((DMA0 && !PIO0)) { If ((Local6 & 0x01)) { Local0 = Match (^UDMT, MGE, DMA0, MTR, 0x00, 0x00) UDC = (Local0 | 0x08) If ((Local0 < 0x02)) { U66 = One } } Local0 = Match (^PIOT, MGE, DMA0, MTR, 0x00, 0x00) Local2 = DerefOf (^DACT [Local0]) Local3 = DerefOf (^DRCT [Local0]) TM0 = (Local3 + (Local2 << 0x04)) Local4 = Local0 } If ((!DMA0 && PIO0)) { Local0 = Match (^PIOT, MGE, PIO0, MTR, 0x00, 0x00) Local2 = DerefOf (^DACT [Local0]) Local3 = DerefOf (^DRCT [Local0]) TM0 = (Local3 + (Local2 << 0x04)) Local4 = Local0 } If ((DMA0 && PIO0)) { If ((Local6 & 0x01)) { Local0 = Match (^UDMT, MGE, DMA0, MTR, 0x00, 0x00) UDC = (Local0 | 0x08) If ((Local0 < 0x02)) { U66 = One } } If ((PIO0 >= DMA0)) { Local0 = Match (^PIOT, MGE, PIO0, MTR, 0x00, 0x00) Local4 = Local0 } Else { Local0 = Match (^PIOT, MGE, DMA0, MTR, 0x00, 0x00) Local4 = Local0 } Local2 = DerefOf (^DACT [Local0]) Local3 = DerefOf (^DRCT [Local0]) TM0 = (Local3 + (Local2 << 0x04)) } } Local5 = Ones If ((DMA1 || PIO1)) { If ((DMA1 && !PIO1)) { If ((Local6 & 0x04)) { Local0 = Match (^UDMT, MGE, DMA1, MTR, 0x00, 0x00) UDC |= ((Local0 | 0x08) << 0x04) /* \_SB_.PCI0.IDE_.STM_.UDC_ */ If ((Local0 < 0x02)) { U66 = One } } Local0 = Match (^PIOT, MGE, DMA1, MTR, 0x00, 0x00) Local2 = DerefOf (^DACT [Local0]) Local3 = DerefOf (^DRCT [Local0]) TM1 = (Local3 + (Local2 << 0x04)) Local5 = Local0 } If ((!DMA1 && PIO1)) { Local0 = Match (^PIOT, MGE, PIO1, MTR, 0x00, 0x00) Local2 = DerefOf (^DACT [Local0]) Local3 = DerefOf (^DRCT [Local0]) TM1 = (Local3 + (Local2 << 0x04)) Local5 = Local0 } If ((DMA1 && PIO1)) { If ((Local6 & 0x04)) { Local0 = Match (^UDMT, MGE, DMA1, MTR, 0x00, 0x00) UDC |= ((Local0 | 0x08) << 0x04) /* \_SB_.PCI0.IDE_.STM_.UDC_ */ If ((Local0 < 0x02)) { U66 = One } } If ((PIO1 >= DMA1)) { Local0 = Match (^PIOT, MGE, PIO1, MTR, 0x00, 0x00) Local5 = Local0 } Else { Local0 = Match (^PIOT, MGE, DMA1, MTR, 0x00, 0x00) Local5 = Local0 } Local2 = DerefOf (^DACT [Local0]) Local3 = DerefOf (^DRCT [Local0]) TM1 = (Local3 + (Local2 << 0x04)) } } If ((Local4 == Ones)) { If ((Local5 == Ones)) { CBT = Zero } Else { CBT = DerefOf (^CBCT [Local5]) } } ElseIf ((Local5 == Ones)) { CBT = DerefOf (^CBCT [Local4]) } ElseIf ((Local4 >= Local5)) { CBT = DerefOf (^CBCT [Local4]) } Else { CBT = DerefOf (^CBCT [Local5]) } AST = 0x02 Return (Local7) } Method (GTF0, 3, NotSerialized) { Local7 = Buffer (0x07) { 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF // ....... } CreateByteField (Local7, 0x01, MODE) If ((Arg1 & 0x08)) { Local0 = (Arg1 & 0x07) MODE = (0x04 - Local0) MODE |= 0x40 } Else { Local0 = (Arg2 & 0x0F) Local1 = Match (^DRCT, MEQ, Local0, MTR, 0x00, 0x00) MODE = DerefOf (^PXLM [Local1]) MODE |= 0x20 } Concatenate (Local7, Local7, Local6) Local0 = (Arg2 & 0x0F) Local1 = Match (^DRCT, MEQ, Local0, MTR, 0x00, 0x00) MODE = (0x04 - Local1) MODE |= 0x08 Concatenate (Local6, Local7, Local5) Return (Local5) } Method (GTF1, 3, NotSerialized) { Local7 = Buffer (0x07) { 0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF // ....... } CreateByteField (Local7, 0x01, MODE) If ((Arg1 & 0x80)) { Local0 = ((Arg1 & 0x70) >> 0x04) MODE = (0x04 - Local0) MODE |= 0x40 } Else { Local0 = (Arg2 & 0x0F) Local1 = Match (^DRCT, MEQ, Local0, MTR, 0x00, 0x00) MODE = DerefOf (^PXLM [Local1]) MODE |= 0x20 } Concatenate (Local7, Local7, Local6) Local0 = (Arg2 & 0x0F) Local1 = Match (^DRCT, MEQ, Local0, MTR, 0x00, 0x00) MODE = (0x04 - Local1) MODE |= 0x08 Concatenate (Local6, Local7, Local5) Return (Local5) } Device (PRIM) { Name (_ADR, 0x00) // _ADR: Address Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { Debug = "GTM - Primary Controller" Local0 = ^^GTM (^^PTM0, ^^PTM1, ^^PUDC) Return (Local0) } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { Debug = "STM - Primary Controller" Local0 = ^^STM (Arg0, Arg1, Arg2) CreateByteField (Local0, 0x00, TM0) CreateByteField (Local0, 0x01, TM1) CreateByteField (Local0, 0x02, UDC) CreateByteField (Local0, 0x03, AST) CreateByteField (Local0, 0x04, CBT) CreateByteField (Local0, 0x05, U66) ^^PTM0 = TM0 /* \_SB_.PCI0.IDE_.PRIM._STM.TM0_ */ ^^PTM1 = TM1 /* \_SB_.PCI0.IDE_.PRIM._STM.TM1_ */ ^^PUDC = UDC /* \_SB_.PCI0.IDE_.PRIM._STM.UDC_ */ ^^PAST = AST /* \_SB_.PCI0.IDE_.PRIM._STM.AST_ */ ^^PCBT = CBT /* \_SB_.PCI0.IDE_.PRIM._STM.CBT_ */ If (U66) { ^^U66E = U66 /* \_SB_.PCI0.IDE_.PRIM._STM.U66_ */ } ^^PFTH = 0x55 } Device (MAST) { Name (_ADR, 0x00) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Debug = "GTF - Primary Master" Local0 = ^^^GTF0 (^^^PCHE, ^^^PUDC, ^^^PTM0) Return (Local0) } } } } Device (PM) { Name (_ADR, 0x00110000) // _ADR: Address OperationRegion (PMUR, PCI_Config, 0x00, 0xFF) Field (PMUR, ByteAcc, NoLock, Preserve) { Offset (0x7D), GPC0, 1, GPC1, 1, GPC2, 1, GPC3, 1, GPC4, 1, GPC5, 1, GPC6, 1, GPC7, 1, GPD0, 1, GPD1, 1, GPD2, 1, GPD3, 1, GPD4, 1, GPD5, 1, GPD6, 1, GPD7, 1, GPS0, 1, GPS1, 1, GPS2, 1, GPS3, 1, GPS4, 1, GPS5, 1, GPS6, 1, GPS7, 1, Offset (0x83), CPME, 8, GP08, 8, GP09, 8, GP10, 8, GP11, 8, GP12, 8, GP13, 8, GP14, 8, GP15, 8, Offset (0x90), GP16, 8, GP17, 8, GP18, 8, GP19, 8, Offset (0x97), , 4, KBS2, 1, Offset (0x98), Offset (0xB5), , 7, KBS1, 1 } OperationRegion (LEDS, PCI_Config, 0xB3, 0x01) Field (LEDS, ByteAcc, NoLock, Preserve) { GLED, 2 } } Device (USB) { Name (_ADR, 0x00140000) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x0B, 0x01 }) Name (USPW, 0x00) PowerResource (PUSB, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) // _STA: Status { Return (USPW) /* \_SB_.PCI0.USB_.USPW */ } Method (_ON, 0, NotSerialized) // _ON_: Power On { USPW = One } Method (_OFF, 0, NotSerialized) // _OFF: Power Off { USPW = Zero } } Name (_PR0, Package (0x01) // _PR0: Power Resources for D0 { PUSB }) } Device (EXBP) { Name (_ADR, 0x02) // _ADR: Address OperationRegion (EBR, PCI_Config, 0x00, 0xFF) Field (EBR, DWordAcc, NoLock, Preserve) { Offset (0x50), R50, 16, Offset (0x54), Offset (0x58), R58, 32, R5C, 32 } } } Device (LID) { Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID Method (_LID, 0, NotSerialized) // _LID: Lid Status { Acquire (PLCK, 0xFFFF) If (Local0 = (0x01 & \_SB.PCI0.ISA.PMRD (0xB5))) { Release (PLCK) Return (Ones) } Else { Release (PLCK) Return (Zero) } } Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x02, 0x03 }) } Device (ADP) { Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID Name (_PCL, Package (0x01) // _PCL: Power Consumer List { \_SB }) Method (_PSR, 0, NotSerialized) // _PSR: Power Source { Acquire (PLCK, 0xFFFF) Local0 = (0x01 & \_SB.PCI0.ISA.PMRD (0xA0)) Release (PLCK) Return (Local0) } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } } Mutex (PLCK, 0x00) Device (BAT0) { Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID Name (_UID, 0x00) // _UID: Unique ID Name (PAK0, Package (0x0D){}) Method (_BIF, 0, NotSerialized) // _BIF: Battery Information { Acquire (PLCK, 0xFFFF) Local0 = \_SB.PCI0.ISA.PMRD (0x00) Local1 = \_SB.PCI0.ISA.PMRD (0x01) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK0 [0x00] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x02) Local1 = \_SB.PCI0.ISA.PMRD (0x03) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK0 [0x01] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x0E) Local1 = \_SB.PCI0.ISA.PMRD (0x0F) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) Local3 *= 0xC8 PAK0 [0x02] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x06) Local1 = \_SB.PCI0.ISA.PMRD (0x07) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK0 [0x03] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x08) Local1 = \_SB.PCI0.ISA.PMRD (0x09) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK0 [0x04] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x0A) Local1 = \_SB.PCI0.ISA.PMRD (0x0B) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK0 [0x05] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x0C) Local1 = \_SB.PCI0.ISA.PMRD (0x0D) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK0 [0x06] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x0E) Local1 = \_SB.PCI0.ISA.PMRD (0x0F) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK0 [0x07] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x10) Local1 = \_SB.PCI0.ISA.PMRD (0x11) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK0 [0x08] = Local3 PAK0 [0x09] = "Dry Cell" PAK0 [0x0A] = "" PAK0 [0x0B] = "Dry " PAK0 [0x0C] = "NEC " Release (PLCK) Return (PAK0) /* \_SB_.BAT0.PAK0 */ } Method (_BST, 0, NotSerialized) // _BST: Battery Status { Acquire (PLCK, 0xFFFF) Name (BT1, Package (0x04){}) Local0 = \_SB.PCI0.ISA.PMRD (0x1A) Local1 = \_SB.PCI0.ISA.PMRD (0x1B) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT1 [0x00] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x1C) Local1 = \_SB.PCI0.ISA.PMRD (0x1D) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT1 [0x01] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x1E) Local1 = \_SB.PCI0.ISA.PMRD (0x1F) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT1 [0x02] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x20) Local1 = \_SB.PCI0.ISA.PMRD (0x21) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT1 [0x03] = Local3 Release (PLCK) Return (BT1) /* \_SB_.BAT0._BST.BT1_ */ } Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point { Acquire (PLCK, 0xFFFF) Local0 = \_SB.PCI0.ISA.PMRD (0xB2) Local0 &= 0x7F \_SB.PCI0.ISA.PMWT (0xB2, Local0) Local0 = Arg0 If ((Local0 != Zero)) { Local1 = \_SB.PCI0.ISA.PMRD (0x1A) If (Local2 = (Local1 & 0x02)) { Local2 = \_SB.PCI0.ISA.PMRD (0x0E) Local5 = \_SB.PCI0.ISA.PMRD (0x0F) Local5 <<= 0x08 Local2 &= 0xFF Local5 &= 0xFF00 Local2 += Local5 Local2 *= 0x06 Local0 += Local2 } } Local6 = Local0 Local1 = (Local0 & 0xFF) \_SB.PCI0.ISA.PMWT (0x22, Local1) Local0 = Local6 Local1 = (Local0 & 0xFF00) Local2 = (Local1 >> 0x08) \_SB.PCI0.ISA.PMWT (0x23, Local2) Local3 = \_SB.PCI0.ISA.PMRD (0xF1) If (Local3 &= 0x80) { Local4 = \_SB.PCI0.ISA.PMRD (0xA1) \_SB.PCI0.ISA.PMWT (0xF1, Local4) } Local0 = \_SB.PCI0.ISA.PMRD (0xB2) Local0 |= 0x80 \_SB.PCI0.ISA.PMWT (0xB2, Local0) Release (PLCK) } Name (_PCL, Package (0x01) // _PCL: Power Consumer List { \_SB }) Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PLCK, 0xFFFF) Local0 = (\_SB.PCI0.ISA.PMRD (0xA1) & 0x01) If ((Local0 == Zero)) { Release (PLCK) Return (0x00) } Else { Release (PLCK) Return (0x1F) } } } Device (BAT1) { Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID Name (_UID, 0x01) // _UID: Unique ID Name (PAK1, Package (0x0D){}) Method (_BIF, 0, NotSerialized) // _BIF: Battery Information { Acquire (PLCK, 0xFFFF) Local0 = \_SB.PCI0.ISA.PMRD (0x24) Local1 = \_SB.PCI0.ISA.PMRD (0x25) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK1 [0x00] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x26) Local1 = \_SB.PCI0.ISA.PMRD (0x27) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK1 [0x01] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x32) Local1 = \_SB.PCI0.ISA.PMRD (0x33) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) Local3 *= 0xC8 PAK1 [0x02] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x2A) Local1 = \_SB.PCI0.ISA.PMRD (0x2B) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK1 [0x03] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x2C) Local1 = \_SB.PCI0.ISA.PMRD (0x2D) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK1 [0x04] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x2E) Local1 = \_SB.PCI0.ISA.PMRD (0x2F) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK1 [0x05] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x30) Local1 = \_SB.PCI0.ISA.PMRD (0x31) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK1 [0x06] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x32) Local1 = \_SB.PCI0.ISA.PMRD (0x33) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK1 [0x07] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x34) Local1 = \_SB.PCI0.ISA.PMRD (0x35) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK1 [0x08] = Local3 PAK1 [0x09] = "Internal Battery" PAK1 [0x0A] = "" PAK1 [0x0B] = "LiP" PAK1 [0x0C] = "NEC " Release (PLCK) Return (PAK1) /* \_SB_.BAT1.PAK1 */ } Method (_BST, 0, NotSerialized) // _BST: Battery Status { Acquire (PLCK, 0xFFFF) Name (BT1, Package (0x04){}) Local0 = \_SB.PCI0.ISA.PMRD (0x3E) Local1 = \_SB.PCI0.ISA.PMRD (0x3F) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT1 [0x00] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x40) Local1 = \_SB.PCI0.ISA.PMRD (0x41) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT1 [0x01] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x42) Local1 = \_SB.PCI0.ISA.PMRD (0x43) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT1 [0x02] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x44) Local1 = \_SB.PCI0.ISA.PMRD (0x45) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT1 [0x03] = Local3 Release (PLCK) Return (BT1) /* \_SB_.BAT1._BST.BT1_ */ } Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point { Acquire (PLCK, 0xFFFF) Local0 = \_SB.PCI0.ISA.PMRD (0xB2) Local0 &= 0x7F \_SB.PCI0.ISA.PMWT (0xB2, Local0) Local0 = Arg0 If ((Local0 != Zero)) { If ((Local0 < 0x02A8)) { Local0 = 0x00 } ElseIf ((Local0 < 0x0631)) { Local0 = 0x02A8 } Else { Local1 = \_SB.PCI0.ISA.PMRD (0x3E) If (Local2 = (Local1 & 0x02)) { Local2 = \_SB.PCI0.ISA.PMRD (0x32) Local5 = \_SB.PCI0.ISA.PMRD (0x33) Local5 <<= 0x08 Local2 &= 0xFF Local5 &= 0xFF00 Local2 += Local5 Local2 *= 0x06 Local0 += Local2 } Else { Local2 = \_SB.PCI0.ISA.PMRD (0x32) Local5 = \_SB.PCI0.ISA.PMRD (0x33) Local5 <<= 0x08 Local2 &= 0xFF Local5 &= 0xFF00 Local2 += Local5 Local2 *= 0x04 Local0 -= Local2 } } } Local6 = Local0 Local1 = (Local0 & 0xFF) \_SB.PCI0.ISA.PMWT (0x46, Local1) Local0 = Local6 Local1 = (Local0 & 0xFF00) Local2 = (Local1 >> 0x08) \_SB.PCI0.ISA.PMWT (0x47, Local2) Local3 = \_SB.PCI0.ISA.PMRD (0xF2) If (Local3 &= 0x80) { Local4 = \_SB.PCI0.ISA.PMRD (0xA2) \_SB.PCI0.ISA.PMWT (0xF2, Local4) } Local0 = \_SB.PCI0.ISA.PMRD (0xB2) Local0 |= 0x80 \_SB.PCI0.ISA.PMWT (0xB2, Local0) Release (PLCK) } Name (_PCL, Package (0x01) // _PCL: Power Consumer List { \_SB }) Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PLCK, 0xFFFF) Local0 = (\_SB.PCI0.ISA.PMRD (0xA2) & 0x01) If ((Local0 == Zero)) { Release (PLCK) Return (0x00) } Else { Release (PLCK) Return (0x1F) } } } Device (BAT2) { Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Name (PAK2, Package (0x0D){}) Method (_BIF, 0, NotSerialized) // _BIF: Battery Information { Acquire (PLCK, 0xFFFF) Local0 = \_SB.PCI0.ISA.PMRD (0x48) Local1 = \_SB.PCI0.ISA.PMRD (0x49) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK2 [0x00] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x4A) Local1 = \_SB.PCI0.ISA.PMRD (0x4B) Local2 = (Local1 * 0x0100) Local4 = (Local2 | Local0) PAK2 [0x01] = Local4 Local0 = \_SB.PCI0.ISA.PMRD (0x56) Local1 = \_SB.PCI0.ISA.PMRD (0x57) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) Local3 *= 0xC8 PAK2 [0x02] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x4E) Local1 = \_SB.PCI0.ISA.PMRD (0x4F) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK2 [0x03] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x50) Local1 = \_SB.PCI0.ISA.PMRD (0x51) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK2 [0x04] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x52) Local1 = \_SB.PCI0.ISA.PMRD (0x53) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK2 [0x05] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x54) Local1 = \_SB.PCI0.ISA.PMRD (0x55) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK2 [0x06] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x56) Local1 = \_SB.PCI0.ISA.PMRD (0x57) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK2 [0x07] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x58) Local1 = \_SB.PCI0.ISA.PMRD (0x59) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) PAK2 [0x08] = Local3 If ((Local4 == 0x5400)) { PAK2 [0x09] = "PC-VP-SP03/OP-570-74703" } ElseIf ((Local4 == 0xDFC0)) { PAK2 [0x09] = "PC-VP-SP04" } ElseIf ((Local4 == 0x4C80)) { PAK2 [0x09] = "PC-VP-BP12" } Else { PAK2 [0x09] = "NEC BATTERY" } PAK2 [0x0A] = "" PAK2 [0x0B] = "Lion" PAK2 [0x0C] = "NEC " Release (PLCK) Return (PAK2) /* \_SB_.BAT2.PAK2 */ } Method (_BST, 0, NotSerialized) // _BST: Battery Status { Acquire (PLCK, 0xFFFF) Name (BT2, Package (0x04){}) Local0 = \_SB.PCI0.ISA.PMRD (0x62) Local1 = \_SB.PCI0.ISA.PMRD (0x63) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT2 [0x00] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x64) Local1 = \_SB.PCI0.ISA.PMRD (0x65) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT2 [0x01] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x66) Local1 = \_SB.PCI0.ISA.PMRD (0x67) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT2 [0x02] = Local3 Local0 = \_SB.PCI0.ISA.PMRD (0x68) Local1 = \_SB.PCI0.ISA.PMRD (0x69) Local2 = (Local1 * 0x0100) Local3 = (Local2 | Local0) BT2 [0x03] = Local3 Release (PLCK) Return (BT2) /* \_SB_.BAT2._BST.BT2_ */ } Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point { Acquire (PLCK, 0xFFFF) Local0 = \_SB.PCI0.ISA.PMRD (0xB2) Local0 &= 0x7F \_SB.PCI0.ISA.PMWT (0xB2, Local0) Local0 = Arg0 If ((Local0 != Zero)) { Local1 = \_SB.PCI0.ISA.PMRD (0x62) If (Local2 = (Local1 & 0x02)) { Local2 = \_SB.PCI0.ISA.PMRD (0x56) Local5 = \_SB.PCI0.ISA.PMRD (0x57) Local5 <<= 0x08 Local2 &= 0xFF Local5 &= 0xFF00 Local2 += Local5 Local2 *= 0x06 Local0 += Local2 } } Local6 = Local0 Local1 = (Local0 & 0xFF) \_SB.PCI0.ISA.PMWT (0x6A, Local1) Local0 = Local6 Local1 = (Local0 & 0xFF00) Local2 = (Local1 >> 0x08) \_SB.PCI0.ISA.PMWT (0x6B, Local2) Local3 = \_SB.PCI0.ISA.PMRD (0xF3) If (Local3 &= 0x80) { Local4 = \_SB.PCI0.ISA.PMRD (0xA3) \_SB.PCI0.ISA.PMWT (0xF3, Local4) } Local0 = \_SB.PCI0.ISA.PMRD (0xB2) Local0 |= 0x80 \_SB.PCI0.ISA.PMWT (0xB2, Local0) Release (PLCK) } Name (_PCL, Package (0x01) // _PCL: Power Consumer List { \_SB }) Method (_STA, 0, NotSerialized) // _STA: Status { Acquire (PLCK, 0xFFFF) Local0 = (\_SB.PCI0.ISA.PMRD (0xA3) & 0x01) If ((Local0 == Zero)) { Release (PLCK) Return (0x00) } Else { Release (PLCK) Return (0x1F) } } } } Scope (\_SB.PCI0) { OperationRegion (LRCR, PCI_Config, 0xA8, 0x08) Field (LRCR, ByteAcc, NoLock, Preserve) { LRON, 1, LRRV, 3, LREN, 1, Offset (0x01) } } Scope (\_TZ) { Device (LRA0) { Name (_HID, EisaId ("PNP0C0B") /* Fan (Thermal Solution) */) // _HID: Hardware ID Method (_INI, 0, NotSerialized) // _INI: Initialize { Local4 = \_SB.PCI0.ISA.PMRD (0xE7) If ((Local4 < 0x4F)) { \_SB.PCI0.ISA.PMWT (0xE5, 0x00) \_SB.PCI0.ISA.PMWT (0xE4, 0x00) \_SB.PCI0.LREN = Zero } ElseIf ((Local4 < 0x55)) { Local6 = (0x4F - 0x05) \_SB.PCI0.ISA.PMWT (0xE5, Local6) \_SB.PCI0.ISA.PMWT (0xE4, 0x4F) \_SB.PCI0.LRRV = 0x06 \_SB.PCI0.LREN = One } Else { Local6 = (0x55 - 0x05) \_SB.PCI0.ISA.PMWT (0xE5, Local6) \_SB.PCI0.ISA.PMWT (0xE4, 0x64) \_SB.PCI0.LRRV = 0x02 \_SB.PCI0.LREN = One } Local5 = (\_SB.PCI0.ISA.PMRD (0xAB) & 0xEF) \_SB.PCI0.ISA.PMWT (0xAB, Local5) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) Local5 = (\_SB.PCI0.ISA.PMRD (0xAC) & 0xEF) \_SB.PCI0.ISA.PMWT (0xAC, Local5) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) Local5 = (\_SB.PCI0.ISA.PMRD (0xAF) & 0xFC) \_SB.PCI0.ISA.PMWT (0xAF, Local5) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) Local5 = (\_SB.PCI0.ISA.PMRD (0xAD) & 0xFE) \_SB.PCI0.ISA.PMWT (0xAD, Local5) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) Local5 = (\_SB.PCI0.ISA.PMRD (0xAE) & 0xFE) \_SB.PCI0.ISA.PMWT (0xAE, Local5) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) } } ThermalZone (THRM) { Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature { Local0 = \_SB.PCI0.ISA.PMRD (0xE8) Local0 *= 0x0A Local0 += 0x0AAC Return (Local0) } Method (_TMP, 0, NotSerialized) // _TMP: Temperature { Local0 = \_SB.PCI0.ISA.PMRD (0xE7) If ((Local0 >= 0x55)) { \_SB.PCI0.LRRV = 0x02 } Else { \_SB.PCI0.LRRV = 0x06 } Local0 *= 0x0A Local0 += 0x0AAC Return (Local0) } } } Scope (_SI) { Mutex (ILCK, 0x00) Method (_SST, 1, NotSerialized) // _SST: System Status { Acquire (\_SI.ILCK, 0xFFFF) If ((Arg0 == Zero)) { Local0 = \_SB.PCI0.ISA.PMRD (0xE0) Local0 &= 0xFE \_SB.PCI0.ISA.PMWT (0xE0, Local0) Release (\_SI.ILCK) Return (0x00) } If ((Arg0 == One)) { Local0 = \_SB.PCI0.ISA.PMRD (0xE0) Local0 &= 0xFE \_SB.PCI0.ISA.PMWT (0xE0, Local0) Release (\_SI.ILCK) Return (0x00) } If ((Arg0 == 0x02)) { Local0 = \_SB.PCI0.ISA.PMRD (0xE0) Local0 |= 0x01 \_SB.PCI0.ISA.PMWT (0xE0, Local0) Release (\_SI.ILCK) Return (0x00) } If ((Arg0 == 0x03)) { Local0 = \_SB.PCI0.ISA.PMRD (0xE0) Local0 |= 0x01 \_SB.PCI0.ISA.PMWT (0xE0, Local0) Release (\_SI.ILCK) Return (0x00) } If ((Arg0 == 0x04)) { Local0 = \_SB.PCI0.ISA.PMRD (0xE0) Local0 &= 0xFE \_SB.PCI0.ISA.PMWT (0xE0, Local0) Release (\_SI.ILCK) Return (0x00) } } } Name (_S0, Package (0x02) // _S0_: S0 System State { 0x00, 0x00 }) Name (_S1, Package (0x02) // _S1_: S1 System State { 0x01, 0x01 }) Name (_S3, Package (0x02) // _S3_: S3 System State { 0x03, 0x03 }) Name (_S4, Package (0x02) // _S4_: S4 System State { 0x04, 0x04 }) Name (_S5, Package (0x02) // _S5_: S5 System State { 0x05, 0x05 }) Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep { Acquire (\_GPE.GLCK, 0xFFFF) If ((Arg0 == 0x00)) { Debug = "===== Prepare to Sleep S0 =====" } If ((Arg0 == 0x01)) { Debug = "===== Prepare to Sleep S1 =====" \_SB.PCI0.PM.CPME = 0x0A Local0 = \_SB.PCI0.ISA.PMRD (0xB7) Local0 |= 0x01 \_SB.PCI0.ISA.PMWT (0xB7, Local0) } If ((Arg0 == 0x02)) { Debug = "===== Prepare to Sleep S2 =====" } If ((Arg0 == 0x03)) { Debug = "===== Prepare to Sleep S3 =====" Local0 = \_SB.PCI0.ISA.PMRD (0xB5) Local1 = (Local0 & 0xDF) \_SB.PCI0.ISA.PMWT (0xB5, Local1) Local0 = \_SB.PCI0.ISA.PMRD (0xBA) Local1 = (Local0 | 0x02) \_SB.PCI0.ISA.PMWT (0xBA, Local1) Local0 = \_SB.PCI0.ISA.PMRD (0xB7) Local0 |= 0x01 \_SB.PCI0.ISA.PMWT (0xB7, Local0) \_SB.PCI0.ISA.PMWT (0xA8, 0x00) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) \_SB.PCI0.ISA.PMWT (0xA9, 0x00) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) \_SB.PCI0.ISA.PMWT (0xAA, 0x00) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) \_SB.PCI0.ISA.PMWT (0xAB, 0x00) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) \_SB.PCI0.ISA.PMWT (0xAC, 0x00) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) \_SB.PCI0.ISA.PMWT (0xAD, 0x00) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) \_SB.PCI0.ISA.PMWT (0xAE, 0x00) \_SB.PCI0.ISA.PMWT (0xF0, 0x00) \_SB.PCI0.ISA.PMWT (0xAF, 0x00) \_SB.PCI0.MPC2.PSTS = One \_SB.PCI0.PM.CPME = 0x02 \_SB.PCI0.R08 = 0x1F } If ((Arg0 == 0x04)) { Debug = "===== Prepare to Sleep S4 =====" } If ((Arg0 == 0x05)) { Debug = "===== Prepare to Sleep S5 =====" } THMP = \_SB.PCI0.ISA.PMRD (0xE6) \_SB.PCI0.ISA.PMWT (0xE6, 0x00) Release (\_GPE.GLCK) } Method (_WAK, 1, NotSerialized) // _WAK: Wake { Acquire (\_GPE.GLCK, 0xFFFF) Debug = "===== WAK =====" If ((Arg0 == 0x01)) { \_SB.PCI0.PM.CPME = 0x00 } If ((Arg0 == 0x03)) { Debug = "===== WAK from S3 =====" Local0 = \_SB.PCI0.ISA.PMRD (0xB5) Local1 = (Local0 | 0x20) \_SB.PCI0.ISA.PMWT (0xB5, Local1) Local0 = \_SB.PCI0.ISA.PMRD (0xBA) Local1 = (Local0 & 0xFD) \_SB.PCI0.ISA.PMWT (0xBA, Local1) \_SB.PCI0.R08 = 0x0D \_SB.PCI0.ISA.PMWT (0xE5, 0x00) \_SB.PCI0.ISA.PMWT (0xE4, 0x4F) Local0 = \_SB.PCI0.EXBP.R50 Local2 = \_SB.PCI0.EXBP.R58 Local0 &= 0x0100 Local2 &= 0x04 If (((Local0 == 0x0100) || (Local2 == 0x04))) { Notify (\_SB.LID, 0x80) // Status Change } } \_SB.PCI0.ISA.PMWT (0xE6, THMP) Release (\_GPE.GLCK) } Name (SSTF, 0x00) Name (THMP, 0x00) }