/* * Intel ACPI Component Architecture * AML Disassembler version 20061109 * * Disassembly of dsdt-cmpc.bin, Tue Jul 29 13:22:03 2008 * * * Original Table Header: * Signature "DSDT" * Length 0x00003421 (13345) * Revision 0x01 * OEM ID "eduwi" * OEM Table ID "eduwi001" * OEM Revision 0x00000001 (1) * Creator ID "INTL" * Creator Revision 0x02002026 (33562662) */ DefinitionBlock ("dsdt-cmpc.aml", "DSDT", 1, "eduwi", "eduwi001", 0x00000001) { Name (APIC, 0x01) Name (PMBS, 0x0800) Name (PMLN, 0x80) Name (GPBS, 0x0480) Name (GPLN, 0x40) Name (SMBS, 0x0400) Name (SMBL, 0x20) Name (PM30, 0x0830) Name (SUSW, 0xFF) Name (PCIB, 0xE0000000) Name (PCIL, 0x10000000) Name (SMIP, 0xB2) Name (TEST, 0x00) Name (ACRT, 0x5A) OperationRegion (BIOS, SystemMemory, 0x1F7CE064, 0xFF) Field (BIOS, ByteAcc, NoLock, Preserve) { SS1, 1, SS2, 1, SS3, 1, SS4, 1, Offset (0x01), IOST, 16, TOPM, 32, ROMS, 32, MG1B, 32, MG1L, 32, MG2B, 32, MG2L, 32, Offset (0x1C), ASSB, 8, AOTB, 8, AAXB, 32 } Method (RRIO, 4, NotSerialized) { Store ("RRIO", Debug) } Method (RDMA, 3, NotSerialized) { Store ("rDMA", Debug) } Name (PICM, 0x00) Method (_PIC, 1, NotSerialized) { If (Arg0) { Store (0xAA, DBG8) } Else { Store (0xAC, DBG8) } Store (Arg0, PICM) } Name (OSVR, Ones) Method (OSFL, 0, NotSerialized) { If (LNotEqual (OSVR, Ones)) { Return (OSVR) } If (LEqual (PICM, 0x00)) { Store (0xAC, DBG8) } Store (0x01, OSVR) If (MCTH (\_OS, "Microsoft Windows NT")) { Store (0x00, OSVR) } Else { If (MCTH (\_OS, "Microsoft WindowsME: Millennium Edition")) { Store (0x02, OSVR) } If (MCTH (\_OS, "Linux")) { Store (0x03, OSVR) } } Return (OSVR) } Method (MCTH, 2, NotSerialized) { If (LLess (SizeOf (Arg0), SizeOf (Arg1))) { Return (Zero) } Add (SizeOf (Arg0), 0x01, Local0) Name (BUF0, Buffer (Local0) {}) Name (BUF1, Buffer (Local0) {}) Store (Arg0, BUF0) Store (Arg1, BUF1) While (Local0) { Decrement (Local0) If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index ( BUF1, Local0)))) { Return (Zero) } } Return (One) } Name (PRWP, Package (0x02) { Zero, Zero }) Method (GPRW, 2, NotSerialized) { Store (Arg0, Index (PRWP, 0x00)) Store (ShiftLeft (SS1, 0x01), Local0) Or (Local0, ShiftLeft (SS2, 0x02), Local0) Or (Local0, ShiftLeft (SS3, 0x03), Local0) Or (Local0, ShiftLeft (SS4, 0x04), Local0) If (And (ShiftLeft (0x01, Arg1), Local0)) { Store (Arg1, Index (PRWP, 0x01)) } Else { ShiftRight (Local0, 0x01, Local0) If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { FindSetLeftBit (Local0, Index (PRWP, 0x01)) } Else { FindSetRightBit (Local0, Index (PRWP, 0x01)) } } Return (PRWP) } Name (WAKP, Package (0x02) { Zero, Zero }) OperationRegion (DEB0, SystemIO, 0x80, 0x01) Field (DEB0, ByteAcc, NoLock, Preserve) { DBG8, 8 } OperationRegion (DEB1, SystemIO, 0x90, 0x02) Field (DEB1, WordAcc, NoLock, Preserve) { DBG9, 16 } Scope (\_PR) { Processor (P001, 0x01, 0x00000810, 0x06) {} Alias (P001, CPU1) } Scope (\_SB) { Name (PR00, Package (0x0C) { Package (0x04) { 0x0001FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x001FFFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x001DFFFF, 0x00, LNKH, 0x00 }, Package (0x04) { 0x001DFFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x001DFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x001DFFFF, 0x03, LNKA, 0x00 }, Package (0x04) { 0x001FFFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x001EFFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0x001EFFFF, 0x01, LNKE, 0x00 }, Package (0x04) { 0x001FFFFF, 0x03, LNKA, 0x00 }, Package (0x04) { 0x0002FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x001CFFFF, 0x00, LNKA, 0x00 } }) Name (AR00, Package (0x0C) { Package (0x04) { 0x0001FFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x001FFFFF, 0x00, 0x00, 0x12 }, Package (0x04) { 0x001DFFFF, 0x00, 0x00, 0x17 }, Package (0x04) { 0x001DFFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0x001DFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0x001DFFFF, 0x03, 0x00, 0x10 }, Package (0x04) { 0x001FFFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0x001EFFFF, 0x00, 0x00, 0x11 }, Package (0x04) { 0x001EFFFF, 0x01, 0x00, 0x14 }, Package (0x04) { 0x001FFFFF, 0x03, 0x00, 0x10 }, Package (0x04) { 0x0002FFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x001CFFFF, 0x00, 0x00, 0x10 } }) Name (PR02, Package (0x01) { Package (0x04) { 0xFFFF, 0x00, LNKA, 0x00 } }) Name (AR02, Package (0x01) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x10 } }) Name (PR01, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKD, 0x00 } }) Name (AR01, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x13 } }) Name (PR05, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKA, 0x00 } }) Name (AR05, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x11 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x12 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x13 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x10 } }) Name (PRSA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {3,4,5,6,7,10,11,12,14,15} }) Alias (PRSA, PRSB) Alias (PRSA, PRSC) Alias (PRSA, PRSD) Alias (PRSA, PRSE) Alias (PRSA, PRSF) Alias (PRSA, PRSG) Alias (PRSA, PRSH) Device (PCI0) { Name (_HID, EisaId ("PNP0A08")) Name (_ADR, 0x00) Method (^BN00, 0, NotSerialized) { Return (0x00) } Method (_BBN, 0, NotSerialized) { Return (BN00 ()) } Name (_UID, 0x00) Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR00) } Return (PR00) } Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Name (_CID, 0x030AD041) Device (MCH) { Name (_HID, EisaId ("PNP0C01")) Name (_UID, 0x0A) Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0xFED13000, // Address Base 0x00007000, // Address Length ) }) } Method (NPTS, 1, NotSerialized) { } Method (NWAK, 1, NotSerialized) { } Device (P0P2) { Name (_ADR, 0x00010000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR02) } Return (PR02) } } Device (P0P1) { Name (_ADR, 0x001E0000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR01) } Return (PR01) } } Device (SBRG) { Name (_ADR, 0x001F0000) Scope (\_SB.PCI0) { Device (PCIE) { Name (_HID, EisaId ("PNP0C02")) Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0xE0000000, // Address Base 0x10000000, // Address Length ) }) } } Method (SPTS, 1, NotSerialized) { } Method (SWAK, 1, NotSerialized) { } OperationRegion (APMP, SystemIO, 0xB2, 0x02) Field (APMP, ByteAcc, NoLock, Preserve) { APMC, 8, APMS, 8 } Field (APMP, ByteAcc, NoLock, Preserve) { Offset (0x01), , 1, BRTC, 1 } OperationRegion (PMS0, SystemIO, PMBS, 0x04) Field (PMS0, ByteAcc, NoLock, Preserve) { , 10, RTCS, 1, , 4, WAKS, 1, Offset (0x03), PWBT, 1, Offset (0x04) } OperationRegion (SMIE, SystemIO, PM30, 0x08) Field (SMIE, ByteAcc, NoLock, Preserve) { , 4, PS1E, 1, , 31, PS1S, 1, Offset (0x08) } Device (PIC) { Name (_HID, EisaId ("PNP0000")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0020, // Range Minimum 0x0020, // Range Maximum 0x00, // Alignment 0x02, // Length ) IO (Decode16, 0x00A0, // Range Minimum 0x00A0, // Range Maximum 0x00, // Alignment 0x02, // Length ) IRQNoFlags () {2} }) } Device (DMAD) { Name (_HID, EisaId ("PNP0200")) Name (_CRS, ResourceTemplate () { DMA (Compatibility, BusMaster, Transfer8, ) {4} IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x00, // Alignment 0x10, // Length ) IO (Decode16, 0x0081, // Range Minimum 0x0081, // Range Maximum 0x00, // Alignment 0x03, // Length ) IO (Decode16, 0x0087, // Range Minimum 0x0087, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0089, // Range Minimum 0x0089, // Range Maximum 0x00, // Alignment 0x03, // Length ) IO (Decode16, 0x008F, // Range Minimum 0x008F, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x00C0, // Range Minimum 0x00C0, // Range Maximum 0x00, // Alignment 0x20, // Length ) }) } Device (TMR) { Name (_HID, EisaId ("PNP0100")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x00, // Alignment 0x04, // Length ) IRQNoFlags () {0} }) } Device (RTC0) { Name (_HID, EisaId ("PNP0B00")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x00, // Alignment 0x02, // Length ) IRQNoFlags () {8} }) } Device (PS2K) { Name (_HID, EisaId ("PNP0303")) Name (_CID, 0x0B03D041) Method (_STA, 0, NotSerialized) { ShiftLeft (0x01, 0x0A, Local0) If (And (IOST, Local0)) { Return (0x0F) } Return (0x00) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0060, // Range Minimum 0x0060, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0064, // Range Minimum 0x0064, // Range Maximum 0x00, // Alignment 0x01, // Length ) IRQNoFlags () {1} }) } Device (SPKR) { Name (_HID, EisaId ("PNP0800")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0061, // Range Minimum 0x0061, // Range Maximum 0x00, // Alignment 0x01, // Length ) }) } Device (COPR) { Name (_HID, EisaId ("PNP0C04")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x00F0, // Range Minimum 0x00F0, // Range Maximum 0x00, // Alignment 0x10, // Length ) IRQNoFlags () {13} }) } Device (RMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x10) Name (CRS, ResourceTemplate () { IO (Decode16, 0x0010, // Range Minimum 0x0010, // Range Maximum 0x00, // Alignment 0x10, // Length ) IO (Decode16, 0x0022, // Range Minimum 0x0022, // Range Maximum 0x00, // Alignment 0x1E, // Length ) IO (Decode16, 0x0044, // Range Minimum 0x0044, // Range Maximum 0x00, // Alignment 0x0A, // Length ) IO (Decode16, 0x0050, // Range Minimum 0x0050, // Range Maximum 0x00, // Alignment 0x10, // Length ) IO (Decode16, 0x0067, // Range Minimum 0x0067, // Range Maximum 0x00, // Alignment 0x09, // Length ) IO (Decode16, 0x0072, // Range Minimum 0x0072, // Range Maximum 0x00, // Alignment 0x0E, // Length ) IO (Decode16, 0x0080, // Range Minimum 0x0080, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0084, // Range Minimum 0x0084, // Range Maximum 0x00, // Alignment 0x03, // Length ) IO (Decode16, 0x0088, // Range Minimum 0x0088, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x008C, // Range Minimum 0x008C, // Range Maximum 0x00, // Alignment 0x03, // Length ) IO (Decode16, 0x0090, // Range Minimum 0x0090, // Range Maximum 0x00, // Alignment 0x10, // Length ) IO (Decode16, 0x00A2, // Range Minimum 0x00A2, // Range Maximum 0x00, // Alignment 0x1E, // Length ) IO (Decode16, 0x00E0, // Range Minimum 0x00E0, // Range Maximum 0x00, // Alignment 0x10, // Length ) IO (Decode16, 0x04D0, // Range Minimum 0x04D0, // Range Maximum 0x00, // Alignment 0x02, // Length ) IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x00, // Alignment 0x00, // Length _Y00) IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x00, // Alignment 0x00, // Length ) IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x00, // Alignment 0x00, // Length _Y01) Memory32Fixed (ReadWrite, 0xFED1C000, // Address Base 0x00004000, // Address Length ) Memory32Fixed (ReadWrite, 0xFFB00000, // Address Base 0x00100000, // Address Length ) Memory32Fixed (ReadWrite, 0xFFF80000, // Address Base 0x00080000, // Address Length ) }) Method (_CRS, 0, NotSerialized) { CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._MIN, GP00) CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._MAX, GP01) CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._LEN, GP0L) Store (PMBS, GP00) Store (PMBS, GP01) Store (PMLN, GP0L) If (GPBS) { CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._MIN, GP20) CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._MAX, GP21) CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._LEN, GP2L) Store (GPBS, GP20) Store (GPBS, GP21) Store (GPLN, GP2L) } Return (CRS) } } OperationRegion (RX80, PCI_Config, 0x00, 0xFF) Field (RX80, ByteAcc, NoLock, Preserve) { Offset (0x80), LPCD, 16, LPCE, 16 } Name (DBPT, Package (0x04) { Package (0x08) { 0x03F8, 0x02F8, 0x0220, 0x0228, 0x0238, 0x02E8, 0x0338, 0x03E8 }, Package (0x08) { 0x03F8, 0x02F8, 0x0220, 0x0228, 0x0238, 0x02E8, 0x0338, 0x03E8 }, Package (0x03) { 0x0378, 0x0278, 0x03BC }, Package (0x02) { 0x03F0, 0x0370 } }) Name (DDLT, Package (0x04) { Package (0x02) { 0x00, 0xFFF8 }, Package (0x02) { 0x04, 0xFF8F }, Package (0x02) { 0x08, 0xFCFF }, Package (0x02) { 0x0C, 0xEFFF } }) Method (RRIO, 4, NotSerialized) { If (LAnd (LLessEqual (Arg0, 0x03), LGreaterEqual (Arg0, 0x00))) { Store (Match (DerefOf (Index (DBPT, Arg0)), MEQ, Arg2, MTR, 0x00, 0x00), Local0) If (LNotEqual (Local0, Ones)) { Store (DerefOf (Index (DerefOf (Index (DDLT, Arg0)), 0x00)), Local1) Store (DerefOf (Index (DerefOf (Index (DDLT, Arg0)), 0x01)), Local2) ShiftLeft (Local0, Local1, Local0) And (LPCD, Local2, LPCD) Or (LPCD, Local0, LPCD) WX82 (Arg0, Arg1) } } If (LEqual (Arg0, 0x08)) { If (LEqual (Arg2, 0x0200)) { WX82 (0x08, Arg0) } Else { If (LEqual (Arg2, 0x0208)) { WX82 (0x09, Arg0) } } } If (LAnd (LLessEqual (Arg0, 0x0D), LGreaterEqual (Arg0, 0x0A))) { WX82 (Arg0, Arg1) } } Method (WX82, 2, NotSerialized) { ShiftLeft (0x01, Arg0, Local0) If (Arg1) { Or (LPCE, Local0, LPCE) } Else { Not (Local0, Local0) And (LPCE, Local0, LPCE) } } Method (RDMA, 3, NotSerialized) { } Device (OMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x00) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y02) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y03) }) Method (_CRS, 0, NotSerialized) { If (APIC) { CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y02._LEN, ML01) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y02._BAS, MB01) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y03._LEN, ML02) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y03._BAS, MB02) Store (0xFEC00000, MB01) Store (0x1000, ML01) Store (0xFEE00000, MB02) Store (0x1000, ML02) } Return (CRS) } } Device (\_SB.RMEM) { Name (_HID, EisaId ("PNP0C01")) Name (_UID, 0x01) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x000A0000, // Address Length ) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y04) Memory32Fixed (ReadOnly, 0x000E0000, // Address Base 0x00020000, // Address Length _Y05) Memory32Fixed (ReadWrite, 0x00100000, // Address Base 0x00000000, // Address Length _Y06) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y07) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, \_SB.RMEM._Y04._BAS, BAS1) CreateDWordField (CRS, \_SB.RMEM._Y04._LEN, LEN1) CreateDWordField (CRS, \_SB.RMEM._Y05._BAS, BAS2) CreateDWordField (CRS, \_SB.RMEM._Y05._LEN, LEN2) CreateDWordField (CRS, \_SB.RMEM._Y06._LEN, LEN3) CreateDWordField (CRS, \_SB.RMEM._Y07._BAS, BAS4) CreateDWordField (CRS, \_SB.RMEM._Y07._LEN, LEN4) If (OSFL ()) {} Else { If (MG1B) { If (LGreater (MG1B, 0x000C0000)) { Store (0x000C0000, BAS1) Subtract (MG1B, BAS1, LEN1) } } Else { Store (0x000C0000, BAS1) Store (0x00020000, LEN1) } If (Add (MG1B, MG1L, Local0)) { Store (Local0, BAS2) Subtract (0x00100000, BAS2, LEN2) } } Subtract (MG2B, 0x00100000, LEN3) Add (MG2B, MG2L, BAS4) Subtract (0x00, BAS4, LEN4) Return (CRS) } } Device (PS2M) { Name (_HID, EisaId ("SYN0802")) Name (_CID, Package (0x02) { 0x00082E4F, 0x130FD041 }) Method (_STA, 0, NotSerialized) { ShiftLeft (0x01, 0x0C, Local0) If (And (IOST, Local0)) { Return (0x0F) } Return (0x00) } Name (CRS1, ResourceTemplate () { IRQNoFlags () {12} }) Name (CRS2, ResourceTemplate () { IO (Decode16, 0x0060, // Range Minimum 0x0060, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0064, // Range Minimum 0x0064, // Range Maximum 0x00, // Alignment 0x01, // Length ) IRQNoFlags () {12} }) Method (_CRS, 0, NotSerialized) { ShiftLeft (0x01, 0x0A, Local0) If (And (IOST, Local0)) { Return (CRS1) } Else { Return (CRS2) } } } } Device (IDE0) { Name (_ADR, 0x001F0001) Name (\_SB.PCI0.NATA, Package (0x01) { 0x001F0001 }) Name (REGF, 0x01) Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x02)) { Store (Arg1, REGF) } } Name (TIM0, Package (0x08) { Package (0x04) { 0x78, 0xB4, 0xF0, 0x0384 }, Package (0x04) { 0x23, 0x21, 0x10, 0x00 }, Package (0x04) { 0x0B, 0x09, 0x04, 0x00 }, Package (0x06) { 0x70, 0x49, 0x36, 0x27, 0x19, 0x0F }, Package (0x06) { 0x00, 0x01, 0x02, 0x01, 0x02, 0x01 }, Package (0x06) { 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 }, Package (0x04) { 0x04, 0x03, 0x02, 0x00 }, Package (0x04) { 0x02, 0x01, 0x00, 0x00 } }) Name (TMD0, Buffer (0x14) {}) CreateDWordField (TMD0, 0x00, PIO0) CreateDWordField (TMD0, 0x04, DMA0) CreateDWordField (TMD0, 0x08, PIO1) CreateDWordField (TMD0, 0x0C, DMA1) CreateDWordField (TMD0, 0x10, CHNF) OperationRegion (CFG2, PCI_Config, 0x40, 0x20) Field (CFG2, DWordAcc, NoLock, Preserve) { PMPT, 4, PSPT, 4, PMRI, 6, Offset (0x02), SMPT, 4, SSPT, 4, SMRI, 6, Offset (0x04), PSRI, 4, SSRI, 4, Offset (0x08), PM3E, 1, PS3E, 1, SM3E, 1, SS3E, 1, Offset (0x0A), PMUT, 2, , 2, PSUT, 2, Offset (0x0B), SMUT, 2, , 2, SSUT, 2, Offset (0x0C), Offset (0x14), PM6E, 1, PS6E, 1, SM6E, 1, SS6E, 1, PMCR, 1, PSCR, 1, SMCR, 1, SSCR, 1, , 4, PMAE, 1, PSAE, 1, SMAE, 1, SSAE, 1 } Name (GMPT, 0x00) Name (GMUE, 0x00) Name (GMUT, 0x00) Name (GMCR, 0x00) Name (GSPT, 0x00) Name (GSUE, 0x00) Name (GSUT, 0x00) Name (GSCR, 0x00) Device (CHN0) { Name (_ADR, 0x00) Method (_GTM, 0, NotSerialized) { ShiftLeft (PSCR, 0x01, Local1) Or (PMCR, Local1, Local0) ShiftLeft (PMAE, 0x02, Local3) ShiftLeft (PM6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (PM3E, Local3, Local1) ShiftLeft (PMPT, 0x04, Local3) Or (Local1, Local3, Local1) ShiftLeft (PSAE, 0x02, Local3) ShiftLeft (PS6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (PS3E, Local3, Local2) ShiftLeft (PSPT, 0x04, Local3) Or (Local2, Local3, Local2) Return (GTM (PMRI, Local1, PMUT, PSRI, Local2, PSUT, Local0)) } Method (_STM, 3, NotSerialized) { Store (Arg0, Debug) Store (Arg0, TMD0) ShiftLeft (PMAE, 0x02, Local3) ShiftLeft (PM6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (PM3E, Local3, Local0) ShiftLeft (PMPT, 0x04, Local3) Or (Local0, Local3, Local0) ShiftLeft (PSAE, 0x02, Local3) ShiftLeft (PS6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (PS3E, Local3, Local1) ShiftLeft (PSPT, 0x04, Local3) Or (Local1, Local3, Local1) Store (PMRI, GMPT) Store (Local0, GMUE) Store (PMUT, GMUT) Store (PMCR, GMCR) Store (PSRI, GSPT) Store (Local1, GSUE) Store (PSUT, GSUT) Store (PSCR, GSCR) STM () Store (GMPT, PMRI) Store (GMUE, Local0) Store (GMUT, PMUT) Store (GMCR, PMCR) Store (GSUE, Local1) Store (GSUT, PSUT) Store (GSCR, PSCR) If (And (Local0, 0x01)) { Store (0x01, PM3E) } Else { Store (0x00, PM3E) } If (And (Local0, 0x02)) { Store (0x01, PM6E) } Else { Store (0x00, PM6E) } If (And (Local0, 0x04)) { Store (0x01, PMAE) } Else { Store (0x00, PMAE) } If (And (Local1, 0x01)) { Store (0x01, PS3E) } Else { Store (0x00, PS3E) } If (And (Local1, 0x02)) { Store (0x01, PS6E) } Else { Store (0x00, PS6E) } If (And (Local1, 0x04)) { Store (0x01, PSAE) } Else { Store (0x00, PSAE) } Store (GTF (0x00, Arg1), ATA0) Store (GTF (0x01, Arg2), ATA1) } Device (DRV0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA0)) } } Device (DRV1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA1)) } } } Device (CHN1) { Name (_ADR, 0x01) Method (_GTM, 0, NotSerialized) { ShiftLeft (SSCR, 0x01, Local1) Or (SMCR, Local1, Local0) ShiftLeft (SMAE, 0x02, Local3) ShiftLeft (SM6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (SM3E, Local3, Local1) ShiftLeft (SMPT, 0x04, Local3) Or (Local1, Local3, Local1) ShiftLeft (SSAE, 0x02, Local3) ShiftLeft (SS6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (SS3E, Local3, Local2) ShiftLeft (SSPT, 0x04, Local3) Or (Local2, Local3, Local2) Return (GTM (SMRI, Local1, SMUT, SSRI, Local2, SSUT, Local0)) } Method (_STM, 3, NotSerialized) { Store (Arg0, Debug) Store (Arg0, TMD0) ShiftLeft (SMAE, 0x02, Local3) ShiftLeft (SM6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (SM3E, Local3, Local0) ShiftLeft (SMPT, 0x04, Local3) Or (Local0, Local3, Local0) ShiftLeft (SSAE, 0x02, Local3) ShiftLeft (SS6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (SS3E, Local3, Local1) ShiftLeft (SSPT, 0x04, Local3) Or (Local1, Local3, Local1) Store (SMRI, GMPT) Store (Local0, GMUE) Store (SMUT, GMUT) Store (SMCR, GMCR) Store (SSRI, GSPT) Store (Local1, GSUE) Store (SSUT, GSUT) Store (SSCR, GSCR) STM () Store (GMPT, SMRI) Store (GMUE, Local0) Store (GMUT, SMUT) Store (GMCR, SMCR) Store (GSUE, Local1) Store (GSUT, SSUT) Store (GSCR, SSCR) If (And (Local0, 0x01)) { Store (0x01, SM3E) } Else { Store (0x00, SM3E) } If (And (Local0, 0x02)) { Store (0x01, SM6E) } Else { Store (0x00, SM6E) } If (And (Local0, 0x04)) { Store (0x01, SMAE) } Else { Store (0x00, SMAE) } If (And (Local1, 0x01)) { Store (0x01, SS3E) } Else { Store (0x00, SS3E) } If (And (Local1, 0x02)) { Store (0x01, SS6E) } Else { Store (0x00, SS6E) } If (And (Local1, 0x04)) { Store (0x01, SSAE) } Else { Store (0x00, SSAE) } Store (GTF (0x00, Arg1), ATA2) Store (GTF (0x01, Arg2), ATA3) } Device (DRV0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA2)) } } Device (DRV1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA3)) } } } Method (GTM, 7, Serialized) { Store (Ones, PIO0) Store (Ones, PIO1) Store (Ones, DMA0) Store (Ones, DMA1) Store (0x10, CHNF) If (REGF) {} Else { Return (TMD0) } If (And (Arg1, 0x20)) { Or (CHNF, 0x02, CHNF) } Store (Match (DerefOf (Index (TIM0, 0x01)), MEQ, Arg0, MTR, 0x00, 0x00), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7) Store (Local7, DMA0) Store (Local7, PIO0) If (And (Arg4, 0x20)) { Or (CHNF, 0x08, CHNF) } Store (Match (DerefOf (Index (TIM0, 0x02)), MEQ, Arg3, MTR, 0x00, 0x00), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7) Store (Local7, DMA1) Store (Local7, PIO1) If (And (Arg1, 0x07)) { Store (Arg2, Local5) If (And (Arg1, 0x02)) { Add (Local5, 0x02, Local5) } If (And (Arg1, 0x04)) { Add (Local5, 0x04, Local5) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA0) Or (CHNF, 0x01, CHNF) } If (And (Arg4, 0x07)) { Store (Arg5, Local5) If (And (Arg4, 0x02)) { Add (Local5, 0x02, Local5) } If (And (Arg4, 0x04)) { Add (Local5, 0x04, Local5) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA1) Or (CHNF, 0x04, CHNF) } Store (TMD0, Debug) Return (TMD0) } Method (STM, 0, Serialized) { If (REGF) {} Else { Store (0x00, GMUE) Store (0x00, GMUT) Store (0x00, GSUE) Store (0x00, GSUT) If (And (CHNF, 0x01)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, 0x00, 0x00), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GMUT) Or (GMUE, 0x01, GMUE) If (LGreater (Local0, 0x02)) { Or (GMUE, 0x02, GMUE) } If (LGreater (Local0, 0x04)) { And (GMUE, 0xFD, GMUE) Or (GMUE, 0x04, GMUE) } } Else { If (Or (LEqual (PIO0, Ones), LEqual (PIO0, 0x00))) { If (And (LLess (DMA0, Ones), LGreater (DMA0, 0x00))) { Store (DMA0, PIO0) Or (GMUE, 0x80, GMUE) } } } If (And (CHNF, 0x04)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR, 0x00, 0x00), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GSUT) Or (GSUE, 0x01, GSUE) If (LGreater (Local0, 0x02)) { Or (GSUE, 0x02, GSUE) } If (LGreater (Local0, 0x04)) { And (GSUE, 0xFD, GSUE) Or (GSUE, 0x04, GSUE) } } Else { If (Or (LEqual (PIO1, Ones), LEqual (PIO1, 0x00))) { If (And (LLess (DMA1, Ones), LGreater (DMA1, 0x00))) { Store (DMA1, PIO1) Or (GSUE, 0x80, GSUE) } } } If (And (CHNF, 0x02)) { Or (GMUE, 0x20, GMUE) } If (And (CHNF, 0x08)) { Or (GSUE, 0x20, GSUE) } And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO0, MTR, 0x00, 0x00), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1) Store (Local1, GMPT) If (LLess (Local0, 0x03)) { Or (GMUE, 0x50, GMUE) } And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO1, MTR, 0x00, 0x00), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)), Local1) Store (Local1, GSPT) If (LLess (Local0, 0x03)) { Or (GSUE, 0x50, GSUE) } } } Name (AT01, Buffer (0x07) { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF }) Name (AT02, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 }) Name (AT03, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 }) Name (AT04, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91 }) Name (ATA0, Buffer (0x1D) {}) Name (ATA1, Buffer (0x1D) {}) Name (ATA2, Buffer (0x1D) {}) Name (ATA3, Buffer (0x1D) {}) Name (ATAB, Buffer (0x1D) {}) CreateByteField (ATAB, 0x00, CMDC) Method (GTFB, 3, Serialized) { Multiply (CMDC, 0x38, Local0) Add (Local0, 0x08, Local1) CreateField (ATAB, Local1, 0x38, CMDX) Multiply (CMDC, 0x07, Local0) CreateByteField (ATAB, Add (Local0, 0x02), A001) CreateByteField (ATAB, Add (Local0, 0x06), A005) Store (Arg0, CMDX) Store (Arg1, A001) Store (Arg2, A005) Increment (CMDC) } Method (GTF, 2, Serialized) { Store (Arg1, Debug) Store (0x00, CMDC) Name (ID49, 0x0C00) Name (ID59, 0x00) Name (ID53, 0x04) Name (ID63, 0x0F00) Name (ID88, 0x0F00) Name (IRDY, 0x01) Name (PIOT, 0x00) Name (DMAT, 0x00) If (LEqual (SizeOf (Arg1), 0x0200)) { CreateWordField (Arg1, 0x62, IW49) Store (IW49, ID49) CreateWordField (Arg1, 0x6A, IW53) Store (IW53, ID53) CreateWordField (Arg1, 0x7E, IW63) Store (IW63, ID63) CreateWordField (Arg1, 0x76, IW59) Store (IW59, ID59) CreateWordField (Arg1, 0xB0, IW88) Store (IW88, ID88) } Store (0xA0, Local7) If (Arg0) { Store (0xB0, Local7) And (CHNF, 0x08, IRDY) If (And (CHNF, 0x10)) { Store (PIO1, PIOT) } Else { Store (PIO0, PIOT) } If (And (CHNF, 0x04)) { If (And (CHNF, 0x10)) { Store (DMA1, DMAT) } Else { Store (DMA0, DMAT) } } } Else { And (CHNF, 0x02, IRDY) Store (PIO0, PIOT) If (And (CHNF, 0x01)) { Store (DMA0, DMAT) } } If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00 )), DMAT)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, 0x00, 0x00), Local1) If (LGreater (Local1, 0x05)) { Store (0x05, Local1) } GTFB (AT01, Or (0x40, Local1), Local7) } Else { If (LAnd (And (ID63, 0xFF00), PIOT)) { And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x03, Local0) Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0 )), Local1) GTFB (AT01, Local1, Local7) } } If (IRDY) { And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x07, Local0) Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0 )), Local1) GTFB (AT01, Local1, Local7) } Else { If (And (ID49, 0x0400)) { GTFB (AT01, 0x01, Local7) } } If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF))) { GTFB (AT03, And (ID59, 0xFF), Local7) } Store (ATAB, Debug) Return (ATAB) } Method (RATA, 1, NotSerialized) { CreateByteField (Arg0, 0x00, CMDN) Multiply (CMDN, 0x38, Local0) CreateField (Arg0, 0x08, Local0, RETB) Store (RETB, Debug) Return (RETB) } } Device (USB1) { Name (_ADR, 0x001D0000) OperationRegion (BAR0, PCI_Config, 0xC4, 0x01) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (0x00, USBW) } } } Device (USB2) { Name (_ADR, 0x001D0001) OperationRegion (BAR0, PCI_Config, 0xC4, 0x01) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (0x00, USBW) } } } Device (USB3) { Name (_ADR, 0x001D0002) OperationRegion (BAR0, PCI_Config, 0xC4, 0x01) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (0x00, USBW) } } } Device (USB4) { Name (_ADR, 0x001D0003) OperationRegion (BAR0, PCI_Config, 0xC4, 0x01) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (0x00, USBW) } } } Device (EUSB) { Name (_ADR, 0x001D0007) } Device (MC97) { Name (_ADR, 0x001E0003) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x05, 0x04)) } } Device (P0P4) { Name (_ADR, 0x001C0000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } } } Scope (\_GPE) { Method (_L09, 0, NotSerialized) { Notify (\_SB.PCI0.P0P2, 0x02) Notify (\_SB.PCI0.P0P4, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0B, 0, NotSerialized) { Notify (\_SB.PCI0.P0P1, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L05, 0, NotSerialized) { Notify (\_SB.PCI0.MC97, 0x02) Notify (\_SB.PWRB, 0x02) } } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C")) Name (_UID, 0xAA) Name (_STA, 0x0B) } } OperationRegion (\_SB.PCI0.SBRG.PIX0, PCI_Config, 0x60, 0x0C) Field (\_SB.PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve) { PIRA, 8, PIRB, 8, PIRC, 8, PIRD, 8, Offset (0x08), PIRE, 8, PIRF, 8, PIRG, 8, PIRH, 8 } Scope (\_SB) { Name (BUFA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, _Y08) {15} }) CreateWordField (BUFA, \_SB._Y08._INT, IRA0) Device (LNKA) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x01) Method (_STA, 0, NotSerialized) { And (PIRA, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSA) } Method (_DIS, 0, NotSerialized) { Or (PIRA, 0x80, PIRA) } Method (_CRS, 0, NotSerialized) { And (PIRA, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRA) } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x02) Method (_STA, 0, NotSerialized) { And (PIRB, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSB) } Method (_DIS, 0, NotSerialized) { Or (PIRB, 0x80, PIRB) } Method (_CRS, 0, NotSerialized) { And (PIRB, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRB) } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x03) Method (_STA, 0, NotSerialized) { And (PIRC, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSC) } Method (_DIS, 0, NotSerialized) { Or (PIRC, 0x80, PIRC) } Method (_CRS, 0, NotSerialized) { And (PIRC, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRC) } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x04) Method (_STA, 0, NotSerialized) { And (PIRD, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSD) } Method (_DIS, 0, NotSerialized) { Or (PIRD, 0x80, PIRD) } Method (_CRS, 0, NotSerialized) { And (PIRD, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRD) } } Device (LNKE) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x05) Method (_STA, 0, NotSerialized) { And (PIRE, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSE) } Method (_DIS, 0, NotSerialized) { Or (PIRE, 0x80, PIRE) } Method (_CRS, 0, NotSerialized) { And (PIRE, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRE) } } Device (LNKF) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x06) Method (_STA, 0, NotSerialized) { And (PIRF, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSF) } Method (_DIS, 0, NotSerialized) { Or (PIRF, 0x80, PIRF) } Method (_CRS, 0, NotSerialized) { And (PIRF, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRF) } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x07) Method (_STA, 0, NotSerialized) { And (PIRG, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSG) } Method (_DIS, 0, NotSerialized) { Or (PIRG, 0x80, PIRG) } Method (_CRS, 0, NotSerialized) { And (PIRG, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRG) } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x08) Method (_STA, 0, NotSerialized) { And (PIRH, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSH) } Method (_DIS, 0, NotSerialized) { Or (PIRH, 0x80, PIRH) } Method (_CRS, 0, NotSerialized) { And (PIRH, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRH) } } } Scope (\_SB) { Name (XCPD, 0x00) Name (XNPT, 0x01) Name (XCAP, 0x02) Name (XDCP, 0x04) Name (XDCT, 0x08) Name (XDST, 0x0A) Name (XLCP, 0x0C) Name (XLCT, 0x10) Name (XLST, 0x12) Name (XSCP, 0x14) Name (XSCT, 0x18) Name (XSST, 0x1A) Name (XRCT, 0x1C) Mutex (MUTE, 0x00) Method (RBPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x01) Field (PCFG, ByteAcc, NoLock, Preserve) { XCFG, 8 } Release (MUTE) Return (XCFG) } Method (RWPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFE, Arg0) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x02) Field (PCFG, WordAcc, NoLock, Preserve) { XCFG, 16 } Release (MUTE) Return (XCFG) } Method (RDPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } Release (MUTE) Return (XCFG) } Method (WBPE, 2, NotSerialized) { Acquire (MUTE, 0x0FFF) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x01) Field (PCFG, ByteAcc, NoLock, Preserve) { XCFG, 8 } Store (Arg1, XCFG) Release (MUTE) } Method (WWPE, 2, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFE, Arg0) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x02) Field (PCFG, WordAcc, NoLock, Preserve) { XCFG, 16 } Store (Arg1, XCFG) Release (MUTE) } Method (WDPE, 2, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } Store (Arg1, XCFG) Release (MUTE) } Method (RWDP, 3, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } And (XCFG, Arg2, Local1) Or (Local1, Arg1, XCFG) Release (MUTE) } Method (RPME, 1, NotSerialized) { Add (Arg0, 0x84, Local0) Store (\_SB.RDPE (Local0), Local1) If (LEqual (Local1, 0xFFFFFFFF)) { Return (0x00) } Else { If (LAnd (Local1, 0x00010000)) { \_SB.WDPE (Local0, And (Local1, 0x00010000)) Return (0x01) } Return (0x00) } } } Scope (\) { Name (FGEC, 0x00) Name (OSEC, 0x00) Name (THPP, 0x00) OperationRegion (PMSP, SystemIO, SMIP, 0x01) Field (PMSP, ByteAcc, NoLock, Preserve) { SSMI, 8 } } Scope (\_SB.PCI0.SBRG) { Device (EC0) { Name (_HID, EisaId ("PNP0C09")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0062, // Range Minimum 0x0062, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0066, // Range Minimum 0x0066, // Range Maximum 0x00, // Alignment 0x01, // Length ) }) Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x03)) { Store (Arg1, \FGEC) Store (OSFL (), Local0) Store (0x04, \OSEC) Store (\OSEC, XSEC) } } OperationRegion (ECXP, EmbeddedControl, 0x00, 0x0100) Field (ECXP, ByteAcc, Lock, Preserve) { XIF0, 16, XIF1, 16, XIF2, 16, XIF3, 16, XIF4, 16, XIF5, 16, XIF6, 16, XIF7, 16, XIF8, 16, XIF9, 64, XIFA, 64, XIFB, 64, XIFC, 64, XST0, 16, XST1, 16, XST2, 16, XST3, 16, XTP0, 16, XCIN, 1, , 1, XTIN, 1, Offset (0x3D), Offset (0x3E), XHPP, 7, Offset (0x3F), Offset (0x40), XSEC, 8, Offset (0x43), XBNS, 3, XABC, 1, , 2, XSCS, 1, XBLO, 1, Offset (0x57), XSLP, 3, , 4, XAEF, 1, Offset (0x5A), XCUS, 4, Offset (0x5B), Offset (0x75), SP3S, 8, XMPP, 7, Offset (0x77), Offset (0x79), TEST, 8, Offset (0x7B), DADC, 8, DCDE, 8, XNPN, 8, Offset (0xC0), YIF0, 16, YIF1, 16, YIF2, 16, YIF3, 16, YIF4, 16, YIF5, 16, YIF6, 16, YIF7, 16, YIF8, 16, YIF9, 64, YIFA, 64, YIFB, 64, YIFC, 64, YST0, 16, YST1, 16, YST2, 16, YST3, 16, YTP0, 16, YCIN, 1, , 1, YTIN, 1, Offset (0xFD) } } } Scope (\_TZ) { ThermalZone (THRM) { Method (KELV, 1, NotSerialized) { And (Arg0, 0xFF, Local0) Multiply (Local0, 0x0A, Local0) Add (Local0, 0x0AAC, Local0) Return (Local0) } Method (_TMP, 0, NotSerialized) { If (LEqual (\THPP, 0x69)) { Store (0x00, \THPP) Return (KELV (0x69)) } If (LEqual (\FGEC, 0x00)) { Return (KELV (0x41)) } Else { Return (KELV (\_SB.PCI0.SBRG.EC0.XHPP)) } } Method (_CRT, 0, NotSerialized) { Return (KELV (0x68)) } } } Scope (\_SB.PCI0.SBRG.EC0) { } Scope (\_SB.PCI0) { Device (AC0) { Name (_HID, "ACPI0003") Name (_PCL, Package (0x01) { \_SB.PCI0 }) Method (_PSR, 0, NotSerialized) { If (LEqual (\FGEC, 0x00)) { Store (0x01, Local0) } Else { Store (\_SB.PCI0.SBRG.EC0.XCIN, Local0) } Return (Local0) } } } Scope (\_SB.PCI0.SBRG.EC0) { Method (_Q07, 0, NotSerialized) { Store (0x07, DBG8) Notify (\_PR.CPU1, 0x80) Notify (\_SB.PCI0.AC0, 0x80) Notify (\_SB.PCI0.BAT1, 0x80) Store (\_SB.PCI0.SBRG.EC0.XCIN, Local0) LAnd (Local0, 0x01) If (LEqual (Local0, 0x01)) { Store (\_SB.PCI0.SBRG.EC0.XBNS, Local1) LAnd (Local1, 0x07) If (LLess (Local1, 0x04)) { Store (0x04, Local1) Store (Local1, \_SB.PCI0.SBRG.EC0.XBNS) Store (0xD7, SSMI) } } Else { Store (\_SB.PCI0.SBRG.EC0.XBNS, Local1) LAnd (Local1, 0x07) If (LGreater (Local1, 0x03)) { Store (0x03, Local1) Store (Local1, \_SB.PCI0.SBRG.EC0.XBNS) Store (0xD6, SSMI) } } } } Scope (\_SB.PCI0) { Device (BAT1) { Name (_HID, EisaId ("PNP0C0A")) Name (_UID, 0x00) Name (_PCL, Package (0x01) { \_SB.PCI0 }) Name (PAK1, Package (0x0D) { 0x00, 0x1130, 0x1130, 0x00, 0x2A30, 0x00, 0x00, 0x10, 0x08, "CMPC1", "00001", "LiON", "Intel" }) Method (_BIF, 0, NotSerialized) { Store (\_SB.PCI0.SBRG.EC0.XIF0, Index (PAK1, 0x00)) Store (\_SB.PCI0.SBRG.EC0.XIF1, Index (PAK1, 0x01)) Store (\_SB.PCI0.SBRG.EC0.XIF2, Local0) Store (Local0, Index (PAK1, 0x02)) Store (\_SB.PCI0.SBRG.EC0.XIF3, Index (PAK1, 0x03)) Store (\_SB.PCI0.SBRG.EC0.XIF4, Index (PAK1, 0x04)) Store (0x05, Index (PAK1, 0x05)) Store (0x00, Index (PAK1, 0x06)) Store (\_SB.PCI0.SBRG.EC0.XIF7, Index (PAK1, 0x07)) Store (\B1MN, Index (PAK1, 0x09)) Store (\B1SN, Index (PAK1, 0x0A)) Store (\B1BT, Index (PAK1, 0x0B)) Store (\B1OI, Index (PAK1, 0x0C)) Return (PAK1) } Name (BFB1, Package (0x04) { 0x00, 0xFFFFFFFF, 0x1034, 0x2A30 }) Method (_BST, 0, NotSerialized) { Store (\_SB.PCI0.SBRG.EC0.XST0, Index (BFB1, 0x00)) Store (\_SB.PCI0.SBRG.EC0.XST2, Index (BFB1, 0x02)) Store (\_SB.PCI0.SBRG.EC0.XST3, Index (BFB1, 0x03)) Return (BFB1) } Method (_STA, 0, NotSerialized) { If (LEqual (\FGEC, 0x00)) { Store (0x00, Local0) } Else { Store (\_SB.PCI0.SBRG.EC0.XTIN, Local0) } If (Local0) { Return (0x1F) } Else { Return (0x0F) } } } } Scope (\_SB.PCI0.SBRG.EC0) { Method (_Q06, 0, NotSerialized) { Store (0x06, DBG8) Notify (\_PR.CPU1, 0x80) Notify (\_SB.PCI0.AC0, 0x80) Sleep (0x14) Notify (\_SB.PCI0.BAT1, 0x80) Sleep (0x14) Notify (\_SB.PCI0.BAT1, 0x81) Sleep (0x14) } } Scope (\_SB.PCI0) { Name (\LIDS, 0x01) Device (LID) { Name (_HID, EisaId ("PNP0C0D")) Method (_LID, 0, NotSerialized) { Return (\LIDS) } } } Scope (\_SB.PCI0.SBRG.EC0) { Method (_Q16, 0, NotSerialized) { Store (0x16, DBG8) Store (0x01, \LIDS) Notify (LID, 0x80) } Method (_Q19, 0, NotSerialized) { Store (0x19, DBG8) Store (0x00, \LIDS) Notify (LID, 0x80) } } Scope (\) { Name (B1MN, "ClassMate") Name (B1SN, "00001") Name (B1BT, "LiOn") Name (B1OI, "OEM") Name (B2MN, "PROJECT") Name (B2SN, "00001") Name (B2BT, "LiOn") Name (B2OI, "OEM") } Scope (\_SB.PCI0) { Method (OPTS, 1, NotSerialized) { } Method (OWAK, 1, NotSerialized) { } } Scope (\_SB.PCI0.SBRG.EC0) { Name (_GPE, 0x18) Method (_Q0A, 0, NotSerialized) { Store (0x0A, DBG8) Store (0x80, SSMI) } Method (_Q0B, 0, NotSerialized) { Store (0x1E, DBG8) } Method (_Q0D, 0, NotSerialized) { Store (0xE1, DBG8) Sleep (0xC8) Notify (\_SB.SLPB, 0x80) } Method (_Q12, 0, NotSerialized) { Store (0x12, DBG8) Store (0x88, SSMI) Store (\_SB.PCI0.SBRG.EC0.XBNS, Local0) Store (\_SB.PCI0.SBRG.EC0.XBNS, Local1) LAnd (Local1, 0x07) If (LEqual (Local1, 0x00)) {} Else { Decrement (Local0) Store (Local0, \_SB.PCI0.SBRG.EC0.XBNS) } } Method (_Q13, 0, NotSerialized) { Store (0x13, DBG8) Store (0x89, SSMI) Store (\_SB.PCI0.SBRG.EC0.XBNS, Local0) Store (\_SB.PCI0.SBRG.EC0.XBNS, Local1) LAnd (Local1, 0x07) If (LEqual (Local1, 0x07)) {} Else { Increment (Local0) Store (Local0, \_SB.PCI0.SBRG.EC0.XBNS) } } Method (_Q10, 0, NotSerialized) { Store (0xF7, DBG8) } Method (_Q1A, 0, NotSerialized) { Store (0x1A, DBG8) Store (0xD8, SSMI) Store (\_SB.PCI0.SBRG.EC0.XBNS, Local1) LAnd (Local1, 0x07) Store (0x00, Local2) Store (Local2, \_SB.PCI0.SBRG.EC0.XBNS) } Method (_Q1B, 0, NotSerialized) { Store (0x1B, DBG8) Store (0xD9, SSMI) Store (DBG8, Local1) Store (Local1, \_SB.PCI0.SBRG.EC0.XBNS) } Method (_Q1E, 0, NotSerialized) { Store (0x1E, DBG8) Store (0x00, THRT) } Method (_Q1F, 0, NotSerialized) { Store (0x1F, DBG8) Store (0x1E, THRT) } Method (_Q20, 0, NotSerialized) { Store (0x20, DBG8) Store (0x1C, THRT) } Method (_Q21, 0, NotSerialized) { Store (0x21, DBG8) Store (0x1A, THRT) } Method (_Q22, 0, NotSerialized) { Store (0x22, DBG8) Store (0x18, THRT) } Method (_Q23, 0, NotSerialized) { Store (0x23, DBG8) Store (0x16, THRT) } Method (_Q24, 0, NotSerialized) { Store (0x24, DBG8) Store (0x14, THRT) } Method (_Q25, 0, NotSerialized) { Store (0x25, DBG8) Store (0x12, THRT) } Method (_Q27, 0, NotSerialized) { Store (0x27, DBG8) Store (0x69, \THPP) Notify (\_TZ.THRM, 0x80) } Method (_Q28, 0, NotSerialized) { Store (0x28, DBG8) Sleep (0x01F4) Notify (\_SB.PCI0.P0P2, 0x01) } Method (_Q29, 0, NotSerialized) { Store (0x29, DBG8) Sleep (0x01F4) Notify (\_SB.PCI0.P0P2, 0x01) } } Scope (\_SB) { Device (SLPB) { Name (_HID, EisaId ("PNP0C0E")) } } Scope (\_SB) { Scope (PCI0) { Name (CRS, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, // Granularity 0x0000, // Range Minimum 0x00FF, // Range Maximum 0x0000, // Translation Offset 0x0100, // Length ,, ) 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 ,, , TypeStatic) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Granularity 0x0D00, // Range Minimum 0xFFFF, // Range Maximum 0x0000, // Translation Offset 0xF300, // Length ,, , TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000A0000, // Range Minimum 0x000BFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00020000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C0000, // Range Minimum 0x000DFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00020000, // Length ,, _Y09, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x00000000, // Range Minimum 0x00000000, // Range Maximum 0x00000000, // Translation Offset 0x00000000, // Length ,, _Y0A, AddressRangeMemory, TypeStatic) }) CreateDWordField (CRS, \_SB.PCI0._Y09._MIN, MIN5) CreateDWordField (CRS, \_SB.PCI0._Y09._MAX, MAX5) CreateDWordField (CRS, \_SB.PCI0._Y09._LEN, LEN5) CreateDWordField (CRS, \_SB.PCI0._Y0A._MIN, MIN6) CreateDWordField (CRS, \_SB.PCI0._Y0A._MAX, MAX6) CreateDWordField (CRS, \_SB.PCI0._Y0A._LEN, LEN6) Method (_CRS, 0, NotSerialized) { Store (MG1L, Local0) If (Local0) { Store (MG1B, MIN5) Store (MG1L, LEN5) Add (MIN5, Decrement (Local0), MAX5) } Store (MG2B, MIN6) Store (MG2L, LEN6) Store (MG2L, Local0) Add (MIN6, Decrement (Local0), MAX6) Return (CRS) } } } Name (WOTB, 0x00) Name (WSSB, 0x00) Name (WAXB, 0x00) /* Arg0 = desired sleep state Sx(0-5) */ Method (_PTS, 1, NotSerialized) { /* * Some I/O region at 0x80 (1byte) */ Store (Arg0, DBG8) /* * Only executed for S1-S5 and all methods seem to be empty. */ PTS (Arg0) /* * WAKP is a 2byte package which is used as the return value for * the _WAK method. This sets both elements to zero. */ Store (0x00, Index (WAKP, 0x00)) Store (0x00, Index (WAKP, 0x01)) /* * S4 for WindowsME will get delayed. */ If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02))) { Sleep (0x0BB8) } /* * ASSB: 8bit in bios (seems to save the current S-state) * AAXB: 32bit in bios (saved on sleep, restored on resume) */ Store (ASSB, WSSB) Store (AAXB, WAXB) Store (Arg0, ASSB) Store (Zero, AAXB) } Name (SLID, 0x01) /* * Arg0 is the sleep state that has ended (1=S1, 2=S2, ...) */ Method (_WAK, 1, NotSerialized) { ShiftLeft (Arg0, 0x04, DBG8) Store (0x01, SLID) /* * Calls other methods that are empty. */ WAK (Arg0) /* * IMO is set by going to sleep... So restore values saved before. */ If (ASSB) { Store (WSSB, ASSB) Store (WAXB, AAXB) } /* * WAKP is a package which will be used as return value later. Both * elements were set to zero in _STR and I saw nothing else touching * this. * This seems odd, I would say this always leads to the else part * and this sets the return value to the last S-state not 0... */ If (DerefOf (Index (WAKP, 0x00))) { Store (0x00, Index (WAKP, 0x01)) } Else { Store (Arg0, Index (WAKP, 0x01)) } /* * Linux returns "Microsoft Windows NT" to \_OS */ If (MCTH (\_OS, "Microsoft Windows")) { /* * If returning from S4... */ If (LEqual (Arg0, 0x04)) { Store (0x78, DBG8) /* * ... send a notification. This is a power button event tha * is defined as "hey, I am back from sleep", or so. */ Notify (\_SB.PWRB, 0x02) } } /* * If returning from S3, do nothing special??? */ If (LEqual (Arg0, 0x03)) {} /* * This is an 8bit register on the embedded controller. */ Store (0x04, \_SB.PCI0.SBRG.EC0.XSEC) /* * The values below are defined in the ACPI spec... * 0 = success * 1 = failure, due to lack up power * 2 = failure, due to thermal conditions */ Return (WAKP) } OperationRegion (PMRG, SystemIO, 0x0800, 0x80) Field (PMRG, ByteAcc, NoLock, Preserve) { Offset (0x10), THRT, 8 } Device (\_SB.PCI0.SBRG.TPM) { Name (_HID, EisaId ("WEC1000")) Name (_CID, 0x310CD041) Name (_UID, 0x01) Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0xFED40000, // Address Base 0x00005000, // Address Length ) }) Method (_STA, 0, NotSerialized) { If (0x01) { Return (0x0F) } Else { Return (0x00) } Return (0x0F) } } Name (\_S0, Package (0x04) { 0x00, 0x00, 0x00, 0x00 }) If (SS3) { Name (\_S3, Package (0x04) { 0x05, 0x00, 0x00, 0x00 }) } If (SS4) { Name (\_S4, Package (0x04) { 0x06, 0x00, 0x00, 0x00 }) } Name (\_S5, Package (0x04) { 0x07, 0x00, 0x00, 0x00 }) Method (PTS, 1, NotSerialized) { If (Arg0) { \_SB.PCI0.NPTS (Arg0) \_SB.PCI0.SBRG.SPTS (Arg0) \_SB.PCI0.OPTS (Arg0) } } Method (WAK, 1, NotSerialized) { \_SB.PCI0.NWAK (Arg0) \_SB.PCI0.SBRG.SWAK (Arg0) \_SB.PCI0.OWAK (Arg0) } }