Averatec 1050 DSDT

The other day after I upgraded my Linux kernel to 2.6.23, I noticed my CPU temperature was hitting 80 degrees C. Seeing as how it had usually topped out during normal usage at about 68, and my fan wasn't kicking in, I decided to figure out why. I eventually found a modified DSDT for the Averatec 1020, made by 'newhren'. It sets better limits for thermal control (fan turns on at lower temps), and also adds manual control via the Fn+F3 and Fn+F4 buttons. I ported the changes to my 1050 DSDT.

See the Gentoo Wiki for instructions on how to use this.

The changes I made:

original file, modified file, compiled modified (.hex), and compiled modified (.aml)

/* * Intel ACPI Component Architecture * AML Disassembler version 20060912 * * Disassembly of dsdt.dat, Sun Mar 2 00:57:32 2008 * * * Original Table Header: * Signature "DSDT" * Length 0x000052E0 (21216) * Revision 0x01 * OEM ID "0ABCM" * OEM Table ID "0ABCM009" * OEM Revision 0x00000009 (9) * Creator ID "INTL" * Creator Revision 0x02002026 (33562662) */ DefinitionBlock ("dsdtAveratec-1050-custom.aml", "DSDT", 1, "0ABCM", "0ABCM009", 0x00000009) { Name (_T04, 0x00) Name (_T03, 0x00) Name (_T02, 0x00) Name (_T01, 0x00) Name (_T00, 0x00) Scope (\_PR) { Processor (CPU1, 0x01, 0x00000810, 0x06) { OperationRegion (SSDT, SystemMemory, 0x4F7D56D0, 0x03A3) Name (NCPU, 0x01) Name (TYPE, 0x80000000) Name (HNDL, 0x80000000) } } Name (PMBS, 0x0800) Name (PMLN, 0x80) Name (GPBS, 0x0480) Name (GPLN, 0x40) Name (SMBS, 0x00) Name (SMBL, 0x00) Name (PM30, 0x0830) Name (SUSW, 0x0D) Name (APIC, 0x01) Name (BLMX, 0xFF) Name (BLMI, 0x5E) Name (BSTP, 0x0B) Name (BLDV, 0x04) Name (T01H, 0x3C0x37) Name (T01L, 0x00) Name (T01V, 0x00) Name (T02H, 0x4B) Name (T02L, 0x37) Name (T02V, 0x00) Name (T03H, 0x5A0x55) Name (T03L, 0x410x3C) Name (T03V, 0x00) Name (T04H, 0x78) Name (T04L, 0x550x50) Name (T04V, 0x00) Name (T05H, 0x78) Name (T05L, 0x00) Name (T05V, 0x00) Name (T06H, 0x78) Name (T06L, 0x00) Name (T06V, 0x00) Name (T07H, 0x78) Name (T07L, 0x00) Name (T07V, 0x00) OperationRegion (BIOS, SystemMemory, 0x4F7DE064, 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 (LNotEqualLNot (LEqual (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)))) If (LNot (LEqual (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 (\_SB) { Name (PR00, Package (0x07) { Package (0x04) { 0x001FFFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x001FFFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0x001DFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x001DFFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x001DFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x001DFFFF, 0x03, LNKH, 0x00 }, Package (0x04) { 0x0002FFFF, 0x00, LNKA, 0x00 } }) Name (AR00, Package (0x07) { Package (0x04) { 0x001FFFFF, 0x00, 0x00, 0x12 }, Package (0x04) { 0x001FFFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0x001DFFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x001DFFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0x001DFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0x001DFFFF, 0x03, 0x00, 0x17 }, Package (0x04) { 0x0002FFFF, 0x00, 0x00, 0x10 } }) Name (PR01, Package (0x04) { Package (0x04) { 0x0005FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0004FFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x0004FFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x0006FFFF, 0x00, LNKE, 0x00 } }) Name (AR01, Package (0x04) { Package (0x04) { 0x0005FFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x0004FFFF, 0x00, 0x00, 0x12 }, Package (0x04) { 0x0004FFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0x0006FFFF, 0x00, 0x00, 0x14 } }) Name (PRSA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {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 ("PNP0A03")) 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) } } Method (NPTS, 1, NotSerialized) { } Method (NWAK, 1, NotSerialized) { } Device (POP4) { Name (_ADR, 0x001E0000) Method (_S1D, 0, NotSerialized) { Return (0x00) } Method (_S3D, 0, NotSerialized) { Return (0x00) } Method (_S4D, 0, NotSerialized) { Return (0x03) } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR01) } Return (PR01) } Device (CBC0) { Name (_ADR, 0x00050000) OperationRegion (CBR0, PCI_Config, 0x00, 0xE2) Field (CBR0, DWordAcc, NoLock, Preserve) { Offset (0x44), C044, 32, Offset (0x91), C091, 8, Offset (0xA4), C0A4, 8, C0A5, 8, Offset (0xE0), C0E0, 8, C0E1, 8 } Method (_STA, 0, NotSerialized) { Return (0x0F) } Method (_S3D, 0, NotSerialized) { Return (0x00) } Method (_INI, 0, NotSerialized) { Store (0x00, C044) Or (C0A5, 0x81, C0A5) And (C091, 0x7F, C091) Store (0x00, C0A4) } Method (CEV0, 0, NotSerialized) { And (C0A5, 0x80, Local0) If (Local0) { Notify (CBC0, 0x02) Sleep (0x0BB8) And (C0A5, 0xFE, Local1) Store (Local1, C0A5) Or (Local1, 0x01, Local1) Store (Local1, C0A5) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } Device (CBC1) { Name (_ADR, 0x00050001) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } Device (CBC2) { Name (_ADR, 0x00050002) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } Device (CBC3) { Name (_ADR, 0x00050003) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } Device (CBC4) { Name (_ADR, 0x00050004) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } Device (LAN0) { Name (_ADR, 0x00060000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } } Device (SBRG) { Name (_ADR, 0x001F0000) Method (SPTS, 1, NotSerialized) { Store (One, PS1S) Store (One, PS1E) Store (One, \_SB.SLPS) } Method (SWAK, 1, NotSerialized) { Store (Zero, \_SB.SLPS) Store (Zero, PS1E) } 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) } Scope (\_SB) { Name (SLPS, 0x00) Device (SLPB) { Name (_HID, EisaId ("PNP0C0E")) Method (_STA, 0, NotSerialized) { If (LNotEqualLNot (LEqual (SUSW, 0xFF))) { Return (0x0F) } Return (0x00) } Method (SBEV, 0, NotSerialized) { If (SLPS) { Notify (SLPB, 0x02) } Else { Notify (SLPB, 0x80) } } Method (\_GPE._L1D, 0, NotSerialized) { \_SB.SLPB.SBEV () } Method (_PRW, 0, NotSerialized) { Return (Package (0x02) { 0x1D, 0x04 }) } } } 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 (PS2M) { Name (_HID, EisaId ("PNP0F03")) Name (_CID, 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 (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 0x1C, // Length ) IO (Decode16, 0x0063, // Range Minimum 0x0063, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0065, // Range Minimum 0x0065, // Range Maximum 0x00, // Alignment 0x01, // 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, 0x0480, // Range Minimum 0x0480, // Range Maximum 0x00, // Alignment 0x40, // 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 _Y01) }) Method (_CRS, 0, NotSerialized) { CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._MIN0x82, GP00) CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._MAX0x84, GP01) CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._LEN0x87, GP0L) Store (PMBS, GP00) Store (PMBS, GP01) Store (PMLN, GP0L) If (GPBS) { CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._MIN0x8A, GP20) CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._MAX0x8C, GP21) CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._LEN0x8F, GP2L) Store (GPBS, GP20) Store (GPBS, GP21) Store (GPLN, GP2L) } Return (CRS) } } Device (FWH) { Name (_HID, EisaId ("INT0800")) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y02) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y03) }) CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y02._BAS0x04, BS00) CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y02._LEN0x08, BL00) CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y03._BAS0x10, BS10) CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y03._LEN0x14, BL10) Method (_CRS, 0, NotSerialized) { Store (0xFF800000, Local0) FindSetRightBit (FHD0, Local1) Decrement (Local1) If (Local1) { Multiply (Local1, 0x00080000, Local1) } Add (Local0, Local1, Local2) Store (Local2, BS00) Add (BS00, 0x00400000, BS10) Subtract (0x00, BS10, BL00) Store (BL00, BL10) Return (CRS) } } Device (FWHE) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x03) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y04) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, \_SB.PCI0.SBRG.FWHE._Y04._BAS0x04, BS00) CreateDWordField (CRS, \_SB.PCI0.SBRG.FWHE._Y04._LEN0x08, BL00) If (LEqual (^^FWH.BS00, 0x00)) { ^^FWH._CRS () } Add (^^FWH.BS00, ^^FWH.BL00, BS00) Subtract (^^FWH.BS10, BS00, BL00) Return (CRS) } } OperationRegion (FHR0, PCI_Config, 0xE3, 0x01) Field (FHR0, ByteAcc, NoLock, Preserve) { FHD0, 8 } Device (OMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x00) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y05) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y06) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y07) }) Method (_CRS, 0, NotSerialized) { If (APIC) { CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y05._LEN0x04, ML01) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y05._BAS0x08, MB01) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y06._LEN0x14, ML02) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y06._BAS0x10, MB02) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y07._LEN0x20, ML03) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y07._BAS0x1C, MB03) Store (0xFEC00000, MB01) Store (0x1000, ML01) Store (0xFEE00000, MB02) Store (0x1000, ML02) Store (0xFEFF0000, MB03) Store (0x00010000, ML03) } 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 _Y08) Memory32Fixed (ReadOnly, 0x000E0000, // Address Base 0x00020000, // Address Length _Y09) Memory32Fixed (ReadWrite, 0x00100000, // Address Base 0x00000000, // Address Length _Y0A) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y0B) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, \_SB.RMEM._Y08._BAS0x10, BAS1) CreateDWordField (CRS, \_SB.RMEM._Y08._LEN0x14, LEN1) CreateDWordField (CRS, \_SB.RMEM._Y09._BAS0x1C, BAS2) CreateDWordField (CRS, \_SB.RMEM._Y09._LEN0x20, LEN2) CreateDWordField (CRS, \_SB.RMEM._Y0A._LEN0x2C, LEN3) CreateDWordField (CRS, \_SB.RMEM._Y0B._BAS0x34, BAS4) CreateDWordField (CRS, \_SB.RMEM._Y0B._LEN0x38, 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) } } Scope (\) { Mutex (ECMX, 0x00) Mutex (SMBF, 0x00) Mutex (BATX, 0x00) Name (THBF, Buffer (0x04) { /* 0000 */ 0x00, 0x00, 0x00, 0x00 }) CreateWordField (THBF, 0x00, DW00) CreateWordField (THBF, 0x02, DW01) CreateByteField (THBF, 0x00, DB00) CreateByteField (THBF, 0x01, DB01) CreateByteField (THBF, 0x02, DB10) CreateByteField (THBF, 0x03, DB11) Field (BIOS, ByteAcc, NoLock, Preserve) { Offset (0x77), NVGA, 8, Offset (0x90), FP0L, 8, FP0H, 8, FP1L, 8, FP1H, 8, FP2L, 8, FP2H, 8, FP3L, 8, FP3H, 8, BLV0, 8, BLV1, 8, BLV2, 8, BLV3, 8, BLV4, 8, BLV5, 8, BLV6, 8, BLV7, 8, BCCL, 8 } OperationRegion (APMP, SystemIO, 0xB2, 0x02) Field (APMP, ByteAcc, NoLock, Preserve) { APMC, 8, APMS, 8 } } Scope (\_SB.PCI0.SBRG) { Name (LIDS, 0x01) Device (LIDD) { Name (_HID, EisaId ("PNP0C0D")) Method (_LID, 0, NotSerialized) { Return (LIDS) } } Device (EC0) { Name (ECFL, Zero) Mutex (\MUEC, 0x00) Method (ECAV, 0, NotSerialized) { Return (ECFL) } Name (_HID, EisaId ("PNP0C09")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0062, // Range Minimum 0x0062, // Range Maximum 0x00, // Alignment 0x01, // Length _Y0C) IO (Decode16, 0x0066, // Range Minimum 0x0066, // Range Maximum 0x00, // Alignment 0x01, // Length _Y0D) }) CreateWordField (_CRS, \_SB.PCI0.SBRG.EC0._Y0C._MIN0x02, DPRT) CreateWordField (_CRS, \_SB.PCI0.SBRG.EC0._Y0D._MIN0x0A, CPRT) Name (_GPE, 0x1C) OperationRegion (ECOR, EmbeddedControl, 0x00, 0xFF) Field (ECOR, ByteAcc, Lock, Preserve) { Offset (0x04), CMD1, 8, CDT1, 8, CDT2, 8, CDT3, 8, Offset (0x18), PRTC, 8, SSTS, 8, ADDR, 8, SCMD, 8, SMD0, 8, SMD1, 8, Offset (0x43), P50S, 1, , 1, , 1, P43S, 1, P54S, 1, P55S, 1, Offset (0x48), P54C, 8, P55C, 8, Offset (0x4B), Offset (0x4C), P54T, 8, P55T, 8, Offset (0x50), , 4, P60A, 1, Offset (0x51), , 4, P61A, 1, Offset (0x52), , 4, P62A, 1, Offset (0x53), , 4, P63A, 1, Offset (0x54), , 4, P64A, 1, Offset (0x55), , 4, P65A, 1, , 2, P65M, 1, , 4, P66A, 1, Offset (0x57), , 4, P67A, 1, Offset (0x78), P60S, 1, P61S, 1, P62S, 1, P63S, 1, P64S, 1, P65S, 1, P66S, 1, P67S, 1 } Method (_INI, 0, NotSerialized) { Noop } Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x03)) { Store (Arg1, ECFL) } } Method (_Q0C, 0, NotSerialized) { If (LEqual (\GDGS, 0x00)) Store (\SWTP, Local0) If (LEqual (Local0, 0x01)) { Store (0x70, APMS) Store (0xEC, APMC) Store (NVGA, \GDGS) Store (0x02, Local0) } \_SB.PCI0.IGFX.LCDT () Decrement (Local0) Store (Local0,\SWTP) \_TZ.SFPW () } Method (_Q0D, 0, NotSerialized) { Notify (\_SB.SLPB, 0x80) Store (\SWTP, Local0) If (LGreater (Local0, 0x03)) { Store (0x03, Local0) } Increment (Local0) Store (Local0,\SWTP) \_TZ.SFPW () } Method (_Q0E, 0, NotSerialized) { If (LEqual (\_SB.PCI0.IGFX.GDGS, 0x00)) { Store (0x70, APMS) Store (0xEC, APMC) Store (NVGA, \_SB.PCI0.IGFX.GDGS) } \_SB.PCI0.IGFX.DCHG () } Method (_Q0F, 0, NotSerialized) { If (LEqual (\BCCL, Zero)) {} Else { Decrement (\BCCL) } Store (\BCCL, \_T00Local1) If (LEqual (0x00, \_T00Local1)) { Store (\BLV0, Local0) } Else { If (LEqual (0x01, \_T00Local1)) { Store (\BLV1, Local0) } Else { If (LEqual (0x02, \_T00Local1)) { Store (\BLV2, Local0) } Else { If (LEqual (0x03, \_T00Local1)) { Store (\BLV3, Local0) } Else { If (LEqual (0x04, \_T00Local1)) { Store (\BLV4, Local0) } Else { If (LEqual (0x05, \_T00Local1)) { Store (\BLV5, Local0) } Else { If (LEqual (0x06, \_T00Local1)) { Store (\BLV6, Local0) } Else { If (LEqual (0x07, \_T00Local1)) { Store (\BLV7, Local0) } } } } } } } } STC4 (Local0, 0x83) STC4 (Local0, 0x82) } Method (_Q10, 0, NotSerialized) { If (LLessEqualLNot (LGreater (\BCCL, 0x06))) { Increment (\BCCL) } Else { Store (0x07, \BCCL) } Store (\BCCL, \_T01Local1) If (LEqual (0x00, \_T01Local1)) { Store (\BLV0, Local0) } Else { If (LEqual (0x01, \_T01Local1)) { Store (\BLV1, Local0) } Else { If (LEqual (0x02, \_T01Local1)) { Store (\BLV2, Local0) } Else { If (LEqual (0x03, \_T01Local1)) { Store (\BLV3, Local0) } Else { If (LEqual (0x04, \_T01Local1)) { Store (\BLV4, Local0) } Else { If (LEqual (0x05, \_T01Local1)) { Store (\BLV5, Local0) } Else { If (LEqual (0x06, \_T01Local1)) { Store (\BLV6, Local0) } Else { If (LEqual (0x07, \_T01Local1)) { Store (\BLV7, Local0) } } } } } } } } STC4 (Local0, 0x83) STC4 (Local0, 0x82) } Method (_Q2F, 0, NotSerialized) { Acquire (\ECMX, 0xA000) Store (P55S, \_SB.PCI0.SBRG.LIDS) Release (\ECMX) Notify (\_SB.PCI0.SBRG.LIDD, 0x80) } Method (_Q35, 0, NotSerialized) { Store (Zero, P65M) Store (0x71, APMS) Store (0xEC, APMC) Store (0x01, P65M) Notify (\_SB.PCI0.AC, 0x00) Notify (\_SB.PCI0.BAT0, 0x00) Acquire (\MUEC, 0x8000) Notify (\_SB.PCI0.AC, 0x80) Sleep (0x14) Notify (\_SB.PCI0.BAT0, 0x80) Sleep (0x14) Notify (\_PR.CPU1, 0x80) Sleep (0x64) Notify (\_PR.CPU1, 0x81) Sleep (0x64) Notify (\_SB.PCI0.AC, 0x00) Notify (\_SB.PCI0.AC, 0x80) Notify (\_SB.PCI0.BAT0, 0x00) Notify (\_SB.PCI0.BAT0, 0x80) Increment (APMS) Release (\MUEC) } Method (_Q36, 0, NotSerialized) { Notify (\_SB.PCI0.BAT0, 0x00) Notify (\_SB.PCI0.BAT0, 0x80) Notify (\_SB.PCI0.AC, 0x00) Sleep (0x01F4) If (\_SB.PCI0.SBRG.EC0.BATS ()) { Store (0x01, P66A) \_SB.PCI0.SBRG.EC0.WRAM (0x01, 0xF2, 0x03) Store (0x16, \_SB.PCI0.SBRG.EC0.ADDR) Store (0x01, \_SB.PCI0.SBRG.EC0.SCMD) Store (0x00, \_SB.PCI0.SBRG.EC0.SMD0) Store (0x00, \_SB.PCI0.SBRG.EC0.SMD1) Store (0x08, \_SB.PCI0.SBRG.EC0.PRTC) } Else { Store (0x00, P66A) \_SB.PCI0.SBRG.EC0.WRAM (0x01, 0xF2, 0x02) } Notify (\_SB.PCI0.BAT0, 0x00) Notify (\_SB.PCI0.BAT0, 0x80) Notify (\_SB.PCI0.AC, 0x00) Notify (\_SB.PCI0.AC, 0x80) } Name (MAXB, 0x01) Method (_Q09, 0, NotSerialized) { Store (0x02, MAXB) Notify (\_SB.PCI0.BAT0, 0x80) Sleep (0x03E8) Store (0x03, MAXB) Notify (\_SB.PCI0.BAT0, 0x80) Store (0x01, MAXB) } Method (_Q0B, 0, NotSerialized) { Store (\_SB.PCI0.SBRG.EC0.STC3 (0x06), Local1) And (Local1, 0x08, Local1) If (LEqual (Local1, 0x08)) { \_SB.PCI0.SBRG.EC0.STC5 (0x5B) } Else { \_SB.PCI0.SBRG.EC0.STC5 (0x3B) } } OperationRegion (PMRG, SystemIO, PMBS, 0x80) Field (PMRG, ByteAcc, NoLock, Preserve) { Offset (0x39), , 4, GPIS, 1, Offset (0x3B), , 4, GPBE, 1 } OperationRegion (IOIOR, SystemIO, DPRT, 0x05) Field (IOIOR, ByteAcc, Lock, Preserve) { DAT0, 8, Offset (0x04), CMD0, 8 } Field (IOIOR, ByteAcc, Lock, Preserve) { Offset (0x04), OUTS, 1, INPS, 1 } Method (IRDY, 0, Serialized) { Return (LNot (INPS)) } Method (ORDY, 0, Serialized) { Return (OUTS) } Method (WATI, 0, Serialized) { Store (0x05, Local0) While (LAnd (Local0, LNot (IRDY ()))) { Sleep (0x01) Decrement (Local0) } Return (IRDY ()) } Method (WATO, 0, Serialized) { Store (0x05, Local0) While (LAnd (Local0, ORDY ())) { Sleep (0x01) Decrement (Local0) } Return (Not (ORDY ())) } Method (DLY0, 1, Serialized) { If (ECAV ()) { Store (Arg0, CDT1) Store (0x6B, CDT2) Store (0x00, CDT3) Store (0xBB, CMD1) Store (0x05, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT1 (Arg0) WDT2 (0x6B) WDT3 (0x00) WCMD (0xBB) Return (RDEC (0x05)) } } Method (ACS, 0, Serialized) { If (ECAV ()) { XOr (P65S, 0x01, Local0) Return (Local0) } Else { Store (0x00, Local1) Store (RDP6 (), Local1) And (Local1, 0x20, Local1) ShiftRight (Local1, 0x05, Local1) XOr (Local1, 0x01, Local1) Return (Local1) } } Method (BATS, 0, Serialized) { If (ECAV ()) { XOr (P66S, 0x01, Local0) Return (Local0) } Else { Store (0x00, Local1) Store (RDP6 (), Local1) And (Local1, 0x40, Local1) ShiftRight (Local1, 0x06, Local1) XOr (Local1, 0x01, Local1) Return (Local1) } } Method (RDP5, 0, Serialized) { RDEC (0x43) Return (RDEC (0x43)) } Method (RDP6, 0, Serialized) { RDEC (0x78) Return (RDEC (0x78)) } Method (STC3, 1, Serialized) { If (ECAV ()) { Store (Arg0, CDT1) Store (0xC3, CMD1) Store (0x07, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT1 (Arg0) WCMD (0xC3) Return (RDEC (0x05)) } } Method (STC4, 2, Serialized) { If (ECAV ()) { Store (Arg0, CDT1) Store (Arg1, CDT2) Store (0xC4, CMD1) Store (0x05, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT1 (Arg0) WDT2 (Arg1) WCMD (0xC4) Return (RDEC (0x05)) } } Method (STC5, 1, Serialized) { If (ECAV ()) { Store (Arg0, CDT1) Store (0xC5, CMD1) Store (0x05, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT1 (Arg0) WCMD (0xC5) Return (RDEC (0x05)) } } Method (STCA, 1, Serialized) { If (ECAV ()) { Store (Arg0, CDT1) Store (0xCA, CMD1) Store (0x0A, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT1 (Arg0) WCMD (0xCA) Return (RDEC (0x05)) } } Method (RBAT, 1, Serialized) { If (ECAV ()) { Store (0x00, CDT1) Store (Arg0, CDT2) Store (0xDA, CMD1) Store (0x05, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT2 (Arg0) WDT1 (0x00) WCMD (0xDA) RDEC (0x05) Return (RDEC (0x05)) } } Method (WCMD, 1, NotSerialized) { WREC (0x04, Arg0) } Method (WDT1, 1, NotSerialized) { WREC (0x05, Arg0) } Method (WDT2, 1, NotSerialized) { WREC (0x06, Arg0) } Method (WDT3, 1, NotSerialized) { WREC (0x07, Arg0) } Method (CLRB, 0, Serialized) { While (WATO ()) { Store (DAT0, Local0) } } Method (RDEC, 1, Serialized) { Store (0x00, GPBE) If (WATI ()) { Store (0x80, CMD0) If (WATI ()) { Store (Arg0, DAT0) If (WATO ()) { Store (DAT0, Local0) } } } Store (0x01, GPBS) Store (0x01, GPBE) Return (Local0) } Method (WREC, 2, Serialized) { Store (0x00, GPBE) If (WATI ()) { Store (0x81, CMD0) If (WATI ()) { Store (Arg0, DAT0) If (WATI ()) { Store (Arg1, DAT0) } } } Store (0x01, GPBS) Store (0x01, GPBE) } Method (RRAM, 2, NotSerialized) { Store (0xFF, Local0) If (LEqual (Acquire (\ECMX, 0xA000), 0x00)) { Store (Arg0, CDT3) Store (Arg1, CDT2) Store (0xBA, CMD1) Store (CMD1, Local0) While (Local0) { Store (CMD1, Local0) } Store (CDT1, Local0) Release (\ECMX) } Return (Local0) } Method (WRAM, 3, NotSerialized) { If (LEqual (Acquire (\ECMX, 0xA000), 0x00)) { Store (Arg0, CDT3) Store (Arg1, CDT2) Store (Arg2, CDT1) Store (0xBB, CMD1) Sleep (0xC8) Store (CMD1, Local0) While (Local0) { Store (CMD1, Local0) } Release (\ECMX) } } } } Scope (\_SB) { Alias (\_SB.PCI0.SBRG.EC0.ECAV, ECAV) Alias (\_SB.PCI0.SBRG.EC0.MAXB, MAXB) } Scope (\_SB.PCI0.SBRG.EC0) { Method (RSBT, 2, NotSerialized) { Acquire (ECMX, 0xFFFF) Store (0x07, Local0) While (Local0) { Decrement (Local0) Store (0x00, SSTS) Store (Arg0, ADDR) Store (Arg1, SCMD) Store (0x05, PRTC) Store (0x03, Local2) While (Local2) { Stall (0x0A) And (SSTS, 0x80, Local1) If (LEqual (Local1, 0x80)) { Store (0x00, Local0) Store (0x00, Local2) } Else { Decrement (Local2) } } } Release (ECMX) Return (SMD0) } Method (RBYT, 2, NotSerialized) { Acquire (ECMX, 0xFFFF) Store (0x07, Local0) While (Local0) { Decrement (Local0) Store (0x00, SSTS) Store (Arg0, ADDR) Store (Arg1, SCMD) Store (0x07, PRTC) Store (0x03, Local2) While (Local2) { Sleep (0x0A) And (SSTS, 0x80, Local1) If (LEqual (Local1, 0x80)) { Store (0x00, Local0) Store (0x00, Local2) } Else { Decrement (Local2) } } } Release (ECMX) Return (SMD0) } Method (WBYT, 3, NotSerialized) { Acquire (ECMX, 0xFFFF) Store (0x07, Local0) While (Local0) { Decrement (Local0) Store (0x00, SSTS) Store (Arg0, ADDR) Store (Arg1, SCMD) Store (Arg2, SMD0) Store (0x06, PRTC) Store (0x03, Local2) While (Local2) { Sleep (0x0A) And (SSTS, 0x80, Local1) If (LEqual (Local1, 0x80)) { Store (0x00, Local0) Store (0x00, Local2) } Else { Decrement (Local2) } } } Release (ECMX) } Method (RWRD, 2, NotSerialized) { Acquire (ECMX, 0xFFFF) Store (0x0F, Local0) While (Local0) { Decrement (Local0) Store (0x00, SSTS) Store (Arg0, ADDR) Store (Arg1, SCMD) Store (0x09, PRTC) Store (0x03, Local2) Stall (0x78) And (SSTS, 0x80, Local1) If (LEqual (Local1, 0x80)) { Store (0x00, Local0) } Else { Stall (0x78) } } Store (SMD0, DB00) Store (SMD1, DB01) Release (ECMX) Return (DW00) } Method (WWRD, 4, NotSerialized) { Acquire (ECMX, 0xFFFF) Store (0x07, Local0) While (Local0) { Decrement (Local0) Store (0x00, SSTS) Store (Arg0, ADDR) Store (Arg1, SCMD) Store (Arg2, SMD0) Store (Arg3, SMD1) Store (0x08, PRTC) Store (0x03, Local2) While (Local2) { Sleep (0x0A) And (SSTS, 0x80, Local1) If (LEqual (Local1, 0x80)) { Store (0x00, Local0) Store (0x00, Local2) } Else { Decrement (Local2) } } } Release (ECMX) } } Device (\_SB.PCI0.AC) { Name (_HID, "ACPI0003") Name (_PCL, Package (0x01) { \_SB.PCI0 }) Method (_PSR, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.ECAV ()) { If (\_SB.PCI0.SBRG.EC0.ACS ()) { Return (One) } Else { Return (Zero) } } Else { Return (One) } } Method (_INI, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.ACS ()) { \_SB.PCI0.SBRG.EC0.WREC (0x55, 0x90) } Else { \_SB.PCI0.SBRG.EC0.WREC (0x55, 0x80) } } } Device (\_SB.PCI0.BAT0) { Name (_HID, EisaId ("PNP0C0A")) Name (_UID, 0x00) Name (_PCL, Package (0x01) { \_SB.PCI0 }) Name (BADR, 0x16) Name (PAK0, Package (0x0D) { 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, "", "", "", "" }) Name (PAK1, Package (0x0D) { 0x00, 0x0FA0, 0x0FA0, 0x00, 0x2A30, 0x0190, 0xC8, 0x02, 0x24, "F10DA ", "00001", "LIon", "OEM Define" }) Method (_BIF, 0, NotSerialized) { Acquire (BATX, 0xFFFF) Store (BIF1 (), Local0) Store (CAPD, Index (PAK1, 0x01)) Store (LFCC, Index (PAK1, 0x02)) Store (DCWN, Index (PAK1, 0x05)) Store (DCLW, Index (PAK1, 0x06)) Store (DVOT, Index (PAK1, 0x04)) Release (BATX) Return (PAK1) } Name (BFB0, Package (0x04) { 0x01, 0x03E8, 0x1130, 0x2A30 }) Method (_BST, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.ECFL) { If (\_SB.PCI0.SBRG.EC0.BATS ()) { Sleep (0x32) Acquire (BATX, 0xFFFF) Store (BST0 (), Index (BFB0, 0x00)) Store (BST2 (), Index (BFB0, 0x02)) Store (BST3 (), Index (BFB0, 0x03)) Release (BATX) } Else { Store (Zero, Index (BFB0, 0x00)) Store (Ones, Index (BFB0, 0x01)) Store (Ones, Index (BFB0, 0x02)) Store (Ones, Index (BFB0, 0x03)) } } Return (BFB0) } Method (_STA, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.BATS ()) { Return (0x1F) } Else { Return (0x0F) } } Method (_INI, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.BATS ()) { \_SB.PCI0.SBRG.EC0.WREC (0x56, 0x90) } Else { \_SB.PCI0.SBRG.EC0.WREC (0x56, 0x80) } } Name (SCAL, 0x0140) Name (SENR, 0x14) Name (CAPD, 0x00014820) Name (LFCC, 0x20D0) Name (DCWN, 0x01A4) Name (DCLW, 0x01A4) Name (DVOT, 0x0E) Method (BIF1, 0, Serialized) { Store (0x00, DW00) Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x10), LFCC) Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x18), Local0) Store (Local0, CAPD) Divide (CAPD, 0x14, Local0, Local1) Store (Local1, DCWN) Divide (CAPD, 0x19, Local0, Local1) Store (Local1, DCLW) Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x19), DVOT) Return (CAPD) } Method (BST0, 0, Serialized) { Store (0x02, Local0) Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x16), Local1) And (Local1, 0x60, Local1) If (LEqual (\_SB.PCI0.SBRG.EC0.ACS (), 0x01)) { If (LOr (LEqual (Local1, 0x60), LEqual (Local1, 0x20))) { Store (0x01, Local0) } } Else { Store (0x01, Local0) } Return (Local0) } Method (BST1, 0, Serialized) { Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x0B), Local0) Return (Local0) } Method (BST2, 0, Serialized) { Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x0F), Local0) If (LEqual (MAXB, 0x02)) { Store (0x1000, Local0) } If (LEqual (MAXB, 0x03)) { Store (0x00, Local0) } Return (Local0) } Method (BST3, 0, Serialized) { Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x09), Local0) Return (Local0) } Method (VSRC, 1, Serialized) { And (Arg0, 0xFFFF, Local0) And (Local0, 0x8000, Local1) If (Local1) { Not (Local0, Local0) And (Local0, 0xFFFF, Local0) Increment (Local0) } Multiply (Local0, 0x03E8, Local0) Multiply (0x08, SENR, Local1) Divide (Local0, Local1, Local2, Local3) Multiply (Local3, DVOT, Local3) Return (Local3) } Method (PFCC, 1, Serialized) { Multiply (Arg0, 0x03E8, Local0) Multiply (SCAL, SENR, Local1) Divide (Local0, Local1, Local2, Local3) Multiply (Local3, DVOT, Local3) Return (Local3) } } } 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 (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 (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) 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) 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) 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) 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) 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) 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 (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) 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) { /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF }) Name (AT02, Buffer (0x07) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 }) Name (AT03, Buffer (0x07) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 }) Name (AT04, Buffer (0x07) { /* 0000 */ 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)) If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, 0x00, 0x00), Local1) 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) 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) 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 (AC97) { Name (_ADR, 0x001F0005) } Device (MC97) { Name (_ADR, 0x001F0006) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x05, 0x04)) } } Device (USB1) { Name (_ADR, 0x001D0000) OperationRegion (BAR0, PCI_Config, 0xC4, 0x01) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 3, 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) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x03, 0x03)) } } Device (USB2) { Name (_ADR, 0x001D0001) OperationRegion (BAR0, PCI_Config, 0xC4, 0x01) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 3, 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) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x04, 0x03)) } } Device (USB3) { Name (_ADR, 0x001D0002) OperationRegion (BAR0, PCI_Config, 0xC4, 0x01) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 3, 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) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0C, 0x03)) } } Device (EUSB) { Name (_ADR, 0x001D0007) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0D, 0x03)) } } Device (IGFX) { Name (_ADR, 0x00020000) Name (SWIT, 0x00) Name (GDCS, 0x01) Name (GDGS, 0x00) Name (GDTS, 0x00) Name (GDFG, 0x00) Name (OLDS, 0x01) OperationRegion (GPRG, SystemIO, GPBS, 0x40) Field (GPRG, ByteAcc, NoLock, Preserve) { Offset (0x0C), Offset (0x0E), GP16, 1, GP17, 1, Offset (0x0F), , 1, GP25, 1, , 1, GP27, 1, GP28, 1, Offset (0x10), Offset (0x1B), , 1, GB25, 1, , 1, GB27, 1, GB28, 1, Offset (0x38), GP32, 1, GP33, 1, GP34, 1, GP35, 1, GP36, 1, GP37, 1, GP38, 1, GP39, 1, GP40, 1, GP41, 1, GP42, 1, GP43, 1 } Alias (\_SB.PCI0.IGFX.SWIT, \SWIT) Alias (\_SB.PCI0.IGFX.GDCS, \GDCS) Alias (\_SB.PCI0.IGFX.GDGS, \GDGS) Alias (\_SB.PCI0.IGFX.GDTS, \GDTS) Alias (\_SB.PCI0.IGFX.GDFG, \GDFG) Alias (\_SB.PCI0.IGFX.OLDS, \OLDS) Alias (\_SB.PCI0.IGFX.GP16, \GP16) Alias (\_SB.PCI0.IGFX.GP17, \GP17) Alias (\_SB.PCI0.IGFX.GP25, \GP25) Alias (\_SB.PCI0.IGFX.GP27, \GP27) Alias (\_SB.PCI0.IGFX.GP28, \GP28) Alias (\_SB.PCI0.IGFX.GP32, \GP32) Alias (\_SB.PCI0.IGFX.GP33, \GP33) Alias (\_SB.PCI0.IGFX.GP34, \GP34) Alias (\_SB.PCI0.IGFX.GP35, \GP35) Alias (\_SB.PCI0.IGFX.GP36, \GP36) Alias (\_SB.PCI0.IGFX.GP37, \GP37) Alias (\_SB.PCI0.IGFX.GP38, \GP38) Alias (\_SB.PCI0.IGFX.GP39, \GP39) Alias (\_SB.PCI0.IGFX.GP40, \GP40) Alias (\_SB.PCI0.IGFX.GP41, \GP41) Alias (\_SB.PCI0.IGFX.GP42, \GP42) Alias (\_SB.PCI0.IGFX.GP43, \GP43) Alias (\_SB.PCI0.IGFX.GB25, \GB25) Alias (\_SB.PCI0.IGFX.GB27, \GB27) Alias (\_SB.PCI0.IGFX.GB28, \GB28) Method (_DOS, 1, NotSerialized) { Store (Arg0, \SWIT) } Name (_DOD, Package (0x02) { 0x00010100, 0x00010110 }) Device (CRT) { Name (_ADR, 0x0100) Name (_DCS, 0x1F) Name (_DGS, 0x01) Method (_DSS, 1, NotSerialized) { Or (And (\GDGS, 0x01), ShiftLeft (And (Arg0, 0x01), 0x01), \GDGS) If (LAnd (Arg0, 0x80000000)) { Store (\GDGS, \GDCS) If (LAnd (Arg0, 0x40000000)) { Store (\GDCS, Local0) Or (ShiftLeft (And (Local0, 0x01), 0x01), 0x1D, \_SB.PCI0.IGFX.LCD._DCS) Or (And (Local0, 0x02), 0x1D, \_SB.PCI0.IGFX.CRT._DCS) } } } } Device (LCD) { Name (_ADR, 0x0110) Name (_DCS, 0x1F) Name (_DGS, 0x01) Method (_DSS, 1, NotSerialized) { Or (And (\GDGS, 0x02), And (Arg0, 0x01), \GDGS) If (LAnd (Arg0, 0x80000000)) { Store (\GDGS, \GDCS) If (LAnd (Arg0, 0x40000000)) { Store (\GDCS, Local0) Or (ShiftLeft (And (Local0, 0x01), 0x01), 0x1D, \_SB.PCI0.IGFX.LCD._DCS) Or (And (Local0, 0x02), 0x1D, \_SB.PCI0.IGFX.CRT._DCS) } } } } Method (DCHG, 0, NotSerialized) { If (LEqual (\SWIT, 0x00)) { If (LEqual (\GDTS, 0x00)) { If (LEqual (\GDGS, 0x01)) { Store (0x00, \_SB.PCI0.IGFX.LCD._DGS) Store (0x01, \_SB.PCI0.IGFX.CRT._DGS) } If (LEqual (\GDGS, 0x02)) { Store (0x01, \_SB.PCI0.IGFX.LCD._DGS) Store (0x01, \_SB.PCI0.IGFX.CRT._DGS) } If (LEqual (\GDGS, 0x03)) { Store (0x01, \_SB.PCI0.IGFX.LCD._DGS) Store (0x00, \_SB.PCI0.IGFX.CRT._DGS) } If (LEqual (\OLDS, 0x00)) { Store (One, GP39) Sleep (0x0A) Store (One, GP27) Store (One, \OLDS) } Notify (\_SB.PCI0.IGFX, 0x80) } } If (LEqual (\SWIT, 0x01)) {} Sleep (0x03E8) } Method (LCDT, 0, NotSerialized) { If (LEqual (\SWIT, 0x00)) { If (LEqual (\GDGS, 0x01)) { If (LEqual (\OLDS, 0x00)) { Store (One, GP39) Sleep (0x32) Store (0x01, \_SB.PCI0.IGFX.LCD._DGS) Store (0x00, \_SB.PCI0.IGFX.CRT._DGS) Notify (\_SB.PCI0.IGFX, 0x80) Store (One, GP27) Store (One, \OLDS) } Else { Store (Zero, GP27) Store (Zero, GP39) Store (Zero, \OLDS) } } Else { If (LEqual (\GDGS, 0x02)) { Store (One, GP39) Sleep (0x32) Store (One, GP27) Store (One, \OLDS) Store (0x01, \_SB.PCI0.IGFX.LCD._DGS) Store (0x01, \_SB.PCI0.IGFX.CRT._DGS) Notify (\_SB.PCI0.IGFX, 0x80) } If (LEqual (\GDGS, 0x03)) { Store (Zero, GP27) Sleep (0x32) Store (Zero, GP39) Store (Zero, \OLDS) Store (0x02, \GDGS) } } } If (LEqual (\SWIT, 0x01)) {} Sleep (0x03E8) } } } Scope (\_GPE) { Method (_L0B, 0, NotSerialized) { Notify (\_SB.PCI0.POP4, 0x02) Notify (\_SB.PCI0.POP4.CBC0, 0x02) Notify (\_SB.PCI0.POP4.CBC1, 0x02) Notify (\_SB.PCI0.POP4.CBC2, 0x02) Notify (\_SB.PCI0.POP4.CBC3, 0x02) Notify (\_SB.PCI0.POP4.CBC4, 0x02) Notify (\_SB.PCI0.POP4.LAN0, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L05, 0, NotSerialized) { Notify (\_SB.PCI0.MC97, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L03, 0, NotSerialized) { Notify (\_SB.PCI0.USB1, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L04, 0, NotSerialized) { Notify (\_SB.PCI0.USB2, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0C, 0, NotSerialized) { Notify (\_SB.PCI0.USB3, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0D, 0, NotSerialized) { Notify (\_SB.PCI0.EUSB, 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, _Y0E) {15} }) CreateWordField (BUFA, \_SB._Y0E._INT0x01, 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) } } } Name (\ATSP, 0x1E) Name (\TC1, 0x03) Name (\TC2, 0x01) Name (\APSV, 0x5A) Name (\AHOT, 0x6E) Name (\ACRT, 0x78) Name (\ATMP, 0x00) Name (\SWTP, 0x01) Name (\BTRC, 0x64) Name (\BATL, 0x0A) Scope (\_TZ) { Method (RTMP, 0, NotSerialized) { If (LEqual (\ATMP, Zero)) { Sleep (0x03E8) } If (\_SB.PCI0.SBRG.EC0.ECFL) { If (LEqual (Acquire (\ECMX, 0xA000), 0x00)) { Store (\_SB.PCI0.SBRG.EC0.CPUT, Local0) Release (\ECMX) } } If (LEqual (\ATMP, Zero)) { And (Local0, 0xFF, \ATMP) \_TZ.UDTT () \_TZ.SFPW () Store (0x70, APMS) Store (0xEC, APMC) Store (NVGA, \GDGS) } And (Local0, 0xFF, \ATMP) } Method (UDTT, 0, NotSerialized) { If (LAnd (LGreater (\ATMP, \T01L), LLess (\ATMP, \T01H))) { Store (0x01, \SWTP) Store (T01H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T01L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T02L), LLess (\ATMP, \T02H))) { Store (0x02, \SWTP) Store (T02H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T02L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T03L), LLess (\ATMP, \T03H))) { Store (0x03, \SWTP) Store (T03H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T03L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T04L), LLess (\ATMP, \T04H))) { Store (0x04, \SWTP) Store (T04H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T04L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T05L), LLess (\ATMP, \T05H))) { Store (0x05, \SWTP) Store (T05H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T05L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T06L), LLess (\ATMP, \T06H))) { Store (0x06, \SWTP) Store (T06H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T06L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T07L), LLess (\ATMP, \T07H))) { Store (0x07, \SWTP) Store (T07H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T07L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { } } } } } } } Notify (\_TZ.THRM, 0x81) Notify (\_TZ.THRM, 0x80) } Method (SFPW, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.ECFL) { If (LEqual (Acquire (\ECMX, 0xA000), 0x00)) { Store (\SWTP, \_T02Local1) If (LEqual (0x01, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP0L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP0H, 0x81) } Else { If (LEqual (0x02, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP1L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP1H, 0x81) } Else { If (LEqual (0x03, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP2L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP2H, 0x81) } Else { If (LEqual (0x04, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP2LFP3L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP2HFP3H, 0x81) } Else { If (LEqual (0x05, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP2LFP3L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP2HFP3H, 0x81) } Else { If (LEqual (0x06, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP2LFP3L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP2HFP3H, 0x81) } } } } } } Release (\ECMX) } } } ThermalZone (THRM) { Name (_TZD, Package (0x01) { \_PR.CPU1 }) Name (_TZP, 0x0A) Method (_CRT, 0, NotSerialized) { Return (KELV (\ACRT)) } Method (_HOT, 0, NotSerialized) { Return (KELV (\AHOT)) } Method (KELV, 1, NotSerialized) { And (Arg0, 0xFF, Local0) Multiply (Local0, 0x0A, Local0) Add (Local0, 0x0AAC, Local0) Return (Local0) } Method (_TMP, 0, NotSerialized) { \_TZ.RTMP () If (LEqual (\ATSP, Zero)) { Return (KELV (0x40)) } Else { Return (KELV (\ATMP)) } } Name (_PSL, Package (0x01) { \_PR.CPU1 }) Method (_TSP, 0, NotSerialized) { Multiply (\ATSP, 0x0A, Local0) Return (Local0) } Method (_TC1, 0, NotSerialized) { Return (\TC1) } Method (_TC2, 0, NotSerialized) { Return (\TC2) } Method (_PSV, 0, NotSerialized) { Return (KELV (\APSV)) } } } Scope (\_SB.PCI0.SBRG.EC0) { Field (ECOR, ByteAcc, Lock, Preserve) { Offset (0x80), HYF0, 1, Offset (0x83), CPUT, 8, TM0L, 8, TM0H, 8, Offset (0x88), HYF1, 1, Offset (0x8C), TM1L, 8, TM1H, 8, Offset (0x90), HYF2, 1, Offset (0x93), BATT, 8, TM2L, 8, TM2H, 8, Offset (0x98), HYF3, 1, Offset (0x9C), TM3L, 8, TM3H, 8 } Method (_Q38, 0, NotSerialized) { \_TZ.RTMP () If (LGreater (Subtract (\ATMP, \_SB.PCI0.SBRG.EC0.TM0H), 0x0A)) { \_TZ.UDTT () } Else { Store (\SWTP, \_T03Local1) If (LEqual (0x01, \_T03Local1)) { Store (T02H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T02L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x02, \SWTP) } Else { If (LEqual (0x02, \_T03Local1)) { Store (T03H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T03L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x03, \SWTP) } Else { If (LEqual (0x03, \_T03Local1)) { Store (T04H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T04L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x04, \SWTP) Store (T04L, \APSV) Notify (\_TZ.THRM, 0x81) Notify (\_TZ.THRM, 0x80) } Else { If (LEqual (0x04, \_T03Local1)) { Store (T05H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T05L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x05, \SWTP) Notify (\_TZ.THRM, 0x80) } Else { If (LEqual (0x05, \_T03Local1)) { Store (T06H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T06L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x06, \SWTP) } } } } } } Store (0x00, \_SB.PCI0.SBRG.EC0.HYF0) Store (0x00, \_SB.PCI0.SBRG.EC0.HYF1) \_TZ.SFPW () } Method (_Q39, 0, NotSerialized) { Notify (\_TZ.THRM, 0x80) If (LGreater (Subtract (\_SB.PCI0.SBRG.EC0.TM1L, \ATMP), 0x0A)) { Store (0x5A, \APSV) \_TZ.UDTT () } Else { Store (\SWTP, \_T04Local1) If (LEqual (0x02, \_T04Local1)) { Store (T01H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T01L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x01, \SWTP) } Else { If (LEqual (0x03, \_T04Local1)) { Store (T02H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T02L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x02, \SWTP) } Else { If (LEqual (0x04, \_T04Local1)) { Store (T03H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T03L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x03, \SWTP) Store (T03H, \APSV) Notify (\_TZ.THRM, 0x81) Notify (\_TZ.THRM, 0x80) } Else { If (LEqual (0x05, \_T04Local1)) { Store (T04H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T04L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x04, \SWTP) } Else { If (LEqual (0x06, \_T04Local1)) { Store (T05H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T05L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x05, \SWTP) } } } } } } Store (0x00, \_SB.PCI0.SBRG.EC0.HYF0) Store (0x00, \_SB.PCI0.SBRG.EC0.HYF1) \_TZ.SFPW () } Method (_Q3A, 0, NotSerialized) { Store (0x3A, DBG8) If (LGreater (\_SB.PCI0.SBRG.EC0.BATT, BATL)) { Store (BATL, \_SB.PCI0.SBRG.EC0.TM2L) Store (0x65, \_SB.PCI0.SBRG.EC0.TM2H) Store (Zero, \GB28) } Else { Store (0x00, \_SB.PCI0.SBRG.EC0.TM2L) Store (BATL, \_SB.PCI0.SBRG.EC0.TM2H) Store (One, \GB28) } Store (Zero, \_SB.PCI0.SBRG.EC0.HYF2) } } 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 ,, _Y0F, ,,, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x00000000, // Range Minimum 0x00000000, // Range Maximum 0x00000000, // Translation Offset 0x00000000, // Length ,, _Y10, ,,, AddressRangeMemory, TypeStatic) }) CreateDWordField (CRS, \_SB.PCI0._Y0F._MIN0x5C, MIN5) CreateDWordField (CRS, \_SB.PCI0._Y0F._MAX0x60, MAX5) CreateDWordField (CRS, \_SB.PCI0._Y0F._LEN0x68, LEN5) CreateDWordField (CRS, \_SB.PCI0._Y10._MIN0x76, MIN6) CreateDWordField (CRS, \_SB.PCI0._Y10._MAX0x7A, MAX6) CreateDWordField (CRS, \_SB.PCI0._Y10._LEN0x82, 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) Method (_PTS, 1, NotSerialized) { Store (Arg0, DBG8) PTS (Arg0) Store (Zero, \ATSP) Store (T05H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T01L, \_SB.PCI0.SBRG.EC0.TM1L) Notify (\_TZ.THRM, 0x81) Notify (\_TZ.THRM, 0x80) Store (0x0A, \ATSP) Store (0x00, Index (WAKP, 0x00)) Store (0x00, Index (WAKP, 0x01)) If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02))) { Sleep (0x0BB8) } Store (ASSB, WSSB) Store (AOTB, WOTB) Store (AAXB, WAXB) Acquire (\ECMX, 0xFFFF) If (\_SB.PCI0.SBRG.EC0.BATS ()) { If (LEqual (\_SB.PCI0.SBRG.EC0.RRAM (0x01, 0x8F), 0x18)) { Store (0x16, \_SB.PCI0.SBRG.EC0.ADDR) Store (0x01, \_SB.PCI0.SBRG.EC0.SCMD) Store (0x90, \_SB.PCI0.SBRG.EC0.SMD0) Store (0x01, \_SB.PCI0.SBRG.EC0.SMD1) Store (0x08, \_SB.PCI0.SBRG.EC0.PRTC) \_SB.PCI0.SBRG.EC0.WRAM (Zero, 0x7B, 0x80) } } Release (\ECMX) Store (Arg0, ASSB) Store (OSFL (), AOTB) Store (Zero, AAXB) } Method (_WAK, 1, NotSerialized) { ShiftLeft (Arg0, 0x04, DBG8) Store (0x01, \_SB.PCI0.SBRG.LIDS) WAK (Arg0) If (ASSB) { Store (WSSB, ASSB) Store (WOTB, AOTB) Store (WAXB, AAXB) } If (DerefOf (Index (WAKP, 0x00))) { Store (0x00, Index (WAKP, 0x01)) } Else { Store (Arg0, Index (WAKP, 0x01)) } Acquire (\ECMX, 0xFFFF) Store (\_SB.PCI0.SBRG.EC0.P55S, \_SB.PCI0.SBRG.LIDS) And (\_SB.PCI0.SBRG.EC0.P55C, 0xEF, \_SB.PCI0.SBRG.EC0.P55C) Store (0x80, \_SB.PCI0.SBRG.EC0.P55T) Sleep (0x0A) \_SB.PCI0.SBRG.EC0.STCA (0x06) If (LEqual (\_SB.PCI0.SBRG.EC0.RRAM (0x01, 0x8F), 0x18)) { If (\_SB.PCI0.SBRG.EC0.BATS ()) { Store (0x16, \_SB.PCI0.SBRG.EC0.ADDR) Store (0x01, \_SB.PCI0.SBRG.EC0.SCMD) Store (0x00, \_SB.PCI0.SBRG.EC0.SMD0) Store (0x00, \_SB.PCI0.SBRG.EC0.SMD1) Store (0x08, \_SB.PCI0.SBRG.EC0.PRTC) } \_SB.PCI0.SBRG.EC0.WRAM (Zero, 0x7B, 0x9F) } If (\_SB.PCI0.SBRG.EC0.BATS ()) { \_SB.PCI0.SBRG.EC0.WRAM (0x01, 0xF2, 0x03) } Else { \_SB.PCI0.SBRG.EC0.WRAM (0x01, 0xF2, 0x02) } Release (\ECMX) If (RTCX) {} Else { Notify (\_SB.PWRB, 0x02) } Sleep (0x07D0) Store (0x0A, \ATSP) \_TZ.UDTT () \_TZ.SFPW () Return (WAKP) } OperationRegion (BDA, SystemMemory, 0x04E0, 0x01) Field (BDA, ByteAcc, NoLock, Preserve) { , 2, RTCX, 1 } Name (\_S0, Package (0x04) { 0x00, 0x00, 0x00, 0x00 }) If (SS3) { Name (\_S3, Package (0x04) { 0x05, 0x00, 0x00, 0x00 }) } If (SS4) { Name (\_S4, Package (0x04) { 0x07, 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) } } Method (WAK, 1, NotSerialized) { \_SB.PCI0.NWAK (Arg0) \_SB.PCI0.SBRG.SWAK (Arg0) } }

The changes in the original 1020:

original file, modified file, compiled modified (.hex), and compiled modified (.aml)

/* * Intel ACPI Component Architecture * AML Disassembler version 2006091220051216 * * Disassembly of Averatec-1020-unknown-originaldsdt.aslreg.dsdt, Sun MarAug 26 0120:1312:5342 20082006 * * * Original Table Header: * Signature "DSDT" * Length 0x00005329 (21289) * Revision 0x01 * OEM ID "0ABCM" * OEM Table ID "0ABCM009" * OEM Revision 0x00000009 (9) * Creator ID "INTL" * Creator Revision 0x02002026 (33562662) */ DefinitionBlock ("Averatec-1020-unknown-originalDSDT.aml", "DSDT", 1, "0ABCM", "0ABCM009", 0x00000009) { Name (_T04, 0x00) Name (_T03, 0x00) Name (_T02, 0x00) Name (_T01, 0x00) Name (_T00, 0x00) Scope (\_PR) { Processor (CPU1, 0x01, 0x00000810, 0x06) { OperationRegion (SSDT, SystemMemory, 0x1F7D5720, 0x00B6) Name (NCPU, 0x01) Name (TYPE, 0x80000000) Name (HNDL, 0x80000000) } } Name (PMBS, 0x0800) Name (PMLN, 0x80) Name (GPBS, 0x0480) Name (GPLN, 0x40) Name (SMBS, 0x00) Name (SMBL, 0x00) Name (PM30, 0x0830) Name (SUSW, 0x0D) Name (APIC, 0x01) Name (BLMX, 0xFF) Name (BLMI, 0x5E) Name (BSTP, 0x0B) Name (BLDV, 0x04) Name (T01H, 0x3C) /* Name (T01H, 0x3C) = 60 -> 55 = 0x37 * Name (T01L, 0x00) = 0 -> 0 = 0x00 */ Name (T01H, 0x37) Name (T01L, 0x00) Name (T01V, 0x00) Name (T02H, 0x4B) Name (T02L, 0x37) /* Name (T02H, 0x4B) = 75 -> 70 = 0x46 * Name (T02L, 0x37) = 55 -> 52 = 0x34 */ Name (T02H, 0x46) Name (T02L, 0x34) Name (T02V, 0x00) Name (T03H, 0x5A) Name (T03L, 0x41) /* Name (T03H, 0x5A) = 90 -> 85 = 0x55 * Name (T03L, 0x41) = 65 -> 60 = 0x3C */ Name (T03H, 0x55) Name (T03L, 0x3C) Name (T03V, 0x00) /* Name (T04H, 0x78) = 120 -> 120 = 0x78 * Name (T04L, 0x55) = 85 -> 80 = 0x50 */ Name (T04H, 0x78) Name (T04L, 0x550x50) Name (T04V, 0x00) Name (T05H, 0x78) Name (T05L, 0x00) Name (T05V, 0x00) Name (T06H, 0x78) Name (T06L, 0x00) Name (T06V, 0x00) Name (T07H, 0x78) Name (T07L, 0x00) Name (T07V, 0x00) OperationRegion (BIOS, SystemMemory, 0x1F7DE064, 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 (LNotEqualLNot (LEqual (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)))) If (LNot (LEqual (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 (\_SB) { Name (PR00, Package (0x07) { Package (0x04) { 0x001FFFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x001FFFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0x001DFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x001DFFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x001DFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x001DFFFF, 0x03, LNKH, 0x00 }, Package (0x04) { 0x0002FFFF, 0x00, LNKA, 0x00 } }) Name (AR00, Package (0x07) { Package (0x04) { 0x001FFFFF, 0x00, 0x00, 0x12 }, Package (0x04) { 0x001FFFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0x001DFFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x001DFFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0x001DFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0x001DFFFF, 0x03, 0x00, 0x17 }, Package (0x04) { 0x0002FFFF, 0x00, 0x00, 0x10 } }) Name (PR01, Package (0x04) { Package (0x04) { 0x0005FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0004FFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x0004FFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x0006FFFF, 0x00, LNKE, 0x00 } }) Name (AR01, Package (0x04) { Package (0x04) { 0x0005FFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x0004FFFF, 0x00, 0x00, 0x12 }, Package (0x04) { 0x0004FFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0x0006FFFF, 0x00, 0x00, 0x14 } }) Name (PRSA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {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 ("PNP0A03")) 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) } } Method (NPTS, 1, NotSerialized) { } Method (NWAK, 1, NotSerialized) { } Device (POP4) { Name (_ADR, 0x001E0000) Method (_S1D, 0, NotSerialized) { Return (0x00) } Method (_S3D, 0, NotSerialized) { Return (0x00) } Method (_S4D, 0, NotSerialized) { Return (0x03) } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR01) } Return (PR01) } Device (CBC0) { Name (_ADR, 0x00050000) OperationRegion (CBR0, PCI_Config, 0x00, 0xE2) Field (CBR0, DWordAcc, NoLock, Preserve) { Offset (0x44), C044, 32, Offset (0x91), C091, 8, Offset (0xA4), C0A4, 8, C0A5, 8, Offset (0xE0), C0E0, 8, C0E1, 8 Offset (0xE0), } Method (_STA, 0, NotSerialized) { Return (0x0F) } Method (_S3D, 0, NotSerialized) { Return (0x00) } Method (_INI, 0, NotSerialized) { Store (0x00, C044) Or (C0A5, 0x81, C0A5) And (C091, 0x7F, C091) Store (0x00, C0A4) } Method (CEV0, 0, NotSerialized) { And (C0A5, 0x80, Local0) If (Local0) { Notify (CBC0, 0x02) Sleep (0x0BB8) And (C0A5, 0xFE, Local1) Store (Local1, C0A5) Or (Local1, 0x01, Local1) Store (Local1, C0A5) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } Device (CBC1) { Name (_ADR, 0x00050001) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } Device (CBC2) { Name (_ADR, 0x00050002) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } Device (CBC3) { Name (_ADR, 0x00050003) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } Device (CBC4) { Name (_ADR, 0x00050004) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } Device (LAN0) { Name (_ADR, 0x00060000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } } Device (SBRG) { Name (_ADR, 0x001F0000) Method (SPTS, 1, NotSerialized) { Store (One, PS1S) Store (One, PS1E) Store (One, \_SB.SLPS) } Method (SWAK, 1, NotSerialized) { Store (Zero, \_SB.SLPS) Store (Zero, PS1E) } 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) } Scope (\_SB) { Name (SLPS, 0x00) Device (SLPB) { Name (_HID, EisaId ("PNP0C0E")) Method (_STA, 0, NotSerialized) { If (LNotEqualLNot (LEqual (SUSW, 0xFF))) { Return (0x0F) } Return (0x00) } Method (SBEV, 0, NotSerialized) { If (SLPS) { Notify (SLPB, 0x02) } Else { Notify (SLPB, 0x80) } } Method (\_GPE._L1D, 0, NotSerialized) { \_SB.SLPB.SBEV () } Method (_PRW, 0, NotSerialized) { Return (Package (0x02) { 0x1D, 0x04 }) } } } Device (PIC) { Name (_HID, EisaId ("PNP0000")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0020, // Address Range Minimum 0x0020, // Address Range Maximum 0x00, // Address Alignment 0x02, // Address Length ) IO (Decode16, 0x00A0, // Address Range Minimum 0x00A0, // Address Range Maximum 0x00, // Address Alignment 0x02, // Address Length ) IRQNoFlags () {2} }) } Device (DMAD) { Name (_HID, EisaId ("PNP0200")) Name (_CRS, ResourceTemplate () { DMA (Compatibility, BusMaster, Transfer8, ) {4} IO (Decode16, 0x0000, // Address Range Minimum 0x0000, // Address Range Maximum 0x00, // Address Alignment 0x10, // Address Length ) IO (Decode16, 0x0081, // Address Range Minimum 0x0081, // Address Range Maximum 0x00, // Address Alignment 0x03, // Address Length ) IO (Decode16, 0x0087, // Address Range Minimum 0x0087, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0089, // Address Range Minimum 0x0089, // Address Range Maximum 0x00, // Address Alignment 0x03, // Address Length ) IO (Decode16, 0x008F, // Address Range Minimum 0x008F, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x00C0, // Address Range Minimum 0x00C0, // Address Range Maximum 0x00, // Address Alignment 0x20, // Address Length ) }) } Device (TMR) { Name (_HID, EisaId ("PNP0100")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0040, // Address Range Minimum 0x0040, // Address Range Maximum 0x00, // Address Alignment 0x04, // Address Length ) IRQNoFlags () {0} }) } Device (RTC0) { Name (_HID, EisaId ("PNP0B00")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0070, // Address Range Minimum 0x0070, // Address Range Maximum 0x00, // Address Alignment 0x02, // Address 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, // Address Range Minimum 0x0060, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0064, // Address Range Minimum 0x0064, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length ) IRQNoFlags () {1} }) } Device (PS2M) { Name (_HID, EisaId ("PNP0F03")) Name (_CID, 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, // Address Range Minimum 0x0060, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0064, // Address Range Minimum 0x0064, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length ) IRQNoFlags () {12} }) Method (_CRS, 0, NotSerialized) { ShiftLeft (0x01, 0x0A, Local0) If (And (IOST, Local0)) { Return (CRS1) } Else { Return (CRS2) } } } Device (SPKR) { Name (_HID, EisaId ("PNP0800")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0061, // Address Range Minimum 0x0061, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length ) }) } Device (COPR) { Name (_HID, EisaId ("PNP0C04")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x00F0, // Address Range Minimum 0x00F0, // Address Range Maximum 0x00, // Address Alignment 0x10, // Address Length ) IRQNoFlags () {13} }) } Device (RMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x10) Name (CRS, ResourceTemplate () { IO (Decode16, 0x0010, // Address Range Minimum 0x0010, // Address Range Maximum 0x00, // Address Alignment 0x10, // Address Length ) IO (Decode16, 0x0022, // Address Range Minimum 0x0022, // Address Range Maximum 0x00, // Address Alignment 0x1E, // Address Length ) IO (Decode16, 0x0044, // Address Range Minimum 0x0044, // Address Range Maximum 0x00, // Address Alignment 0x1C, // Address Length ) IO (Decode16, 0x0063, // Address Range Minimum 0x0063, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0065, // Address Range Minimum 0x0065, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0067, // Address Range Minimum 0x0067, // Address Range Maximum 0x00, // Address Alignment 0x09, // Address Length ) IO (Decode16, 0x0072, // Address Range Minimum 0x0072, // Address Range Maximum 0x00, // Address Alignment 0x0E, // Address Length ) IO (Decode16, 0x0080, // Address Range Minimum 0x0080, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x0084, // Address Range Minimum 0x0084, // Address Range Maximum 0x00, // Address Alignment 0x03, // Address Length ) IO (Decode16, 0x0088, // Address Range Minimum 0x0088, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length ) IO (Decode16, 0x008C, // Address Range Minimum 0x008C, // Address Range Maximum 0x00, // Address Alignment 0x03, // Address Length ) IO (Decode16, 0x0090, // Address Range Minimum 0x0090, // Address Range Maximum 0x00, // Address Alignment 0x10, // Address Length ) IO (Decode16, 0x00A2, // Address Range Minimum 0x00A2, // Address Range Maximum 0x00, // Address Alignment 0x1E, // Address Length ) IO (Decode16, 0x00E0, // Address Range Minimum 0x00E0, // Address Range Maximum 0x00, // Address Alignment 0x10, // Address Length ) IO (Decode16, 0x0480, // Address Range Minimum 0x0480, // Address Range Maximum 0x00, // Address Alignment 0x40, // Address Length ) IO (Decode16, 0x04D0, // Address Range Minimum 0x04D0, // Address Range Maximum 0x00, // Address Alignment 0x02, // Address Length ) IO (Decode16, 0x0000, // Address Range Minimum 0x0000, // Address Range Maximum 0x00, // Address Alignment 0x00, // Address Length _Y00) IO (Decode16, 0x0000, // Address Range Minimum 0x0000, // Address Range Maximum 0x00, // Address Alignment 0x00, // Address Length _Y01) }) Method (_CRS, 0, NotSerialized) { CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._MIN0x82, GP00) CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._MAX0x84, GP01) CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._LEN0x87, GP0L) Store (PMBS, GP00) Store (PMBS, GP01) Store (PMLN, GP0L) If (GPBS) { CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._MIN0x8A, GP20) CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._MAX0x8C, GP21) CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._LEN0x8F, GP2L) Store (GPBS, GP20) Store (GPBS, GP21) Store (GPLN, GP2L) } Return (CRS) } } Device (FWH) { Name (_HID, EisaId ("INT0800")) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y02) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y03) }) CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y02._BAS0x04, BS00) CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y02._LEN0x08, BL00) CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y03._BAS0x10, BS10) CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y03._LEN0x14, BL10) Method (_CRS, 0, NotSerialized) { Store (0xFF800000, Local0) FindSetRightBit (FHD0, Local1) Decrement (Local1) If (Local1) { Multiply (Local1, 0x00080000, Local1) } Add (Local0, Local1, Local2) Store (Local2, BS00) Add (BS00, 0x00400000, BS10) Subtract (0x00, BS10, BL00) Store (BL00, BL10) Return (CRS) } } Device (FWHE) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x03) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y04) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, \_SB.PCI0.SBRG.FWHE._Y04._BAS0x04, BS00) CreateDWordField (CRS, \_SB.PCI0.SBRG.FWHE._Y04._LEN0x08, BL00) If (LEqual (^^FWH.BS00, 0x00)) { ^^FWH._CRS () } Add (^^FWH.BS00, ^^FWH.BL00, BS00) Subtract (^^FWH.BS10, BS00, BL00) Return (CRS) } } OperationRegion (FHR0, PCI_Config, 0xE3, 0x01) Field (FHR0, ByteAcc, NoLock, Preserve) { FHD0, 8 } Device (OMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x00) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y05) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y06) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y07) }) Method (_CRS, 0, NotSerialized) { If (APIC) { CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y05._LEN0x08, ML01) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y05._BAS0x04, MB01) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y06._LEN0x14, ML02) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y06._BAS0x10, MB02) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y07._LEN0x20, ML03) CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y07._BAS0x1C, MB03) Store (0xFEC00000, MB01) Store (0x1000, ML01) Store (0xFEE00000, MB02) Store (0x1000, ML02) Store (0xFEFF0000, MB03) Store (0x00010000, ML03) } 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 _Y08) Memory32Fixed (ReadOnly, 0x000E0000, // Address Base 0x00020000, // Address Length _Y09) Memory32Fixed (ReadWrite, 0x00100000, // Address Base 0x00000000, // Address Length _Y0A) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y0B) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, \_SB.RMEM._Y08._BAS0x10, BAS1) CreateDWordField (CRS, \_SB.RMEM._Y08._LEN0x14, LEN1) CreateDWordField (CRS, \_SB.RMEM._Y09._BAS0x1C, BAS2) CreateDWordField (CRS, \_SB.RMEM._Y09._LEN0x20, LEN2) CreateDWordField (CRS, \_SB.RMEM._Y0A._LEN0x2C, LEN3) CreateDWordField (CRS, \_SB.RMEM._Y0B._BAS0x34, BAS4) CreateDWordField (CRS, \_SB.RMEM._Y0B._LEN0x38, 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) } } Scope (\) { Mutex (ECMX, 0x00) Mutex (SMBF, 0x00) Mutex (BATX, 0x00) Name (THBF, Buffer (0x04) { /* 0000 */ 0x00, 0x00, 0x00, 0x00 }) CreateWordField (THBF, 0x00, DW00) CreateWordField (THBF, 0x02, DW01) CreateByteField (THBF, 0x00, DB00) CreateByteField (THBF, 0x01, DB01) CreateByteField (THBF, 0x02, DB10) CreateByteField (THBF, 0x03, DB11) Field (BIOS, ByteAcc, NoLock, Preserve) { Offset (0x77), NVGA, 8, Offset (0x90), FP0L, 8, FP0H, 8, FP1L, 8, FP1H, 8, FP2L, 8, FP2H, 8, FP3L, 8, FP3H, 8, BLV0, 8, BLV1, 8, BLV2, 8, BLV3, 8, BLV4, 8, BLV5, 8, BLV6, 8, BLV7, 8, BCCL, 8 } OperationRegion (APMP, SystemIO, 0xB2, 0x02) Field (APMP, ByteAcc, NoLock, Preserve) { APMC, 8, APMS, 8 } } Scope (\_SB.PCI0.SBRG) { Name (LIDS, 0x01) Device (LIDD) { Name (_HID, EisaId ("PNP0C0D")) Method (_LID, 0, NotSerialized) { Return (LIDS) } } Device (EC0) { Name (ECFL, Zero) Mutex (\MUEC, 0x00) Method (ECAV, 0, NotSerialized) { Return (ECFL) } Name (_HID, EisaId ("PNP0C09")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0062, // Address Range Minimum 0x0062, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length _Y0C) IO (Decode16, 0x0066, // Address Range Minimum 0x0066, // Address Range Maximum 0x00, // Address Alignment 0x01, // Address Length _Y0D) }) CreateWordField (_CRS, \_SB.PCI0.SBRG.EC0._Y0C._MIN0x02, DPRT) CreateWordField (_CRS, \_SB.PCI0.SBRG.EC0._Y0D._MIN0x0A, CPRT) Name (_GPE, 0x1C) OperationRegion (ECOR, EmbeddedControl, 0x00, 0xFF) Field (ECOR, ByteAcc, Lock, Preserve) { Offset (0x04), CMD1, 8, CDT1, 8, CDT2, 8, CDT3, 8, Offset (0x18), PRTC, 8, SSTS, 8, ADDR, 8, SCMD, 8, SMD0, 8, SMD1, 8, Offset (0x43), P50S, 1, , 1, , 1, P43S, 1, P54S, 1, P55S, 1, Offset (0x48), P54C, 8, P55C, 8, Offset (0x4B), Offset (0x4C), P54T, 8, P55T, 8, Offset (0x50), , 4, P60A, 1, Offset (0x51), , 4, P61A, 1, Offset (0x52), , 4, P62A, 1, Offset (0x53), , 4, P63A, 1, Offset (0x54), , 4, P64A, 1, Offset (0x55), , 4, P65A, 1, , 2, P65M, 1, , 4, P66A, 1, Offset (0x57), , 4, P67A, 1, Offset (0x78), P60S, 1, P61S, 1, P62S, 1, P63S, 1, P64S, 1, P65S, 1, P66S, 1, P67S, 1 } Method (_INI, 0, NotSerialized) { Noop } Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x03)) { Store (Arg1, ECFL) } } /* */ Method (_Q0C, 0, NotSerialized) { If (LEqual (\GDGS, 0x00)) Store (\SWTP, Local0) If (LEqual (Local0, 0x01)) { Store (0x70, APMS) Store (0xEC, APMC) Store (NVGA, \GDGS) Store (0x02, Local0) } \_SB.PCI0.IGFX.LCDT () Decrement (Local0) Store (Local0,\SWTP) \_TZ.SFPW () } Method (_Q0D, 0, NotSerialized) { Notify (\_SB.SLPB, 0x80) Store (\SWTP, Local0) If (LGreater (Local0, 0x03)) { Store (0x03, Local0) } Increment (Local0) Store (Local0,\SWTP) \_TZ.SFPW () } /* * Method (_Q0C, 0, NotSerialized) * { * If (LEqual (\GDGS, 0x00)) * { * Store (0x70, APMS) * Store (0xEC, APMC) * Store (NVGA, \GDGS) * } * * \_SB.PCI0.IGFX.LCDT () * } * * Method (_Q0D, 0, NotSerialized) * { * Notify (\_SB.SLPB, 0x80) * } * */ Method (_Q0E, 0, NotSerialized) { If (LEqual (\_SB.PCI0.IGFX.GDGS, 0x00)) { Store (0x70, APMS) Store (0xEC, APMC) Store (NVGA, \_SB.PCI0.IGFX.GDGS) } \_SB.PCI0.IGFX.DCHG () } Method (_Q0F, 0, NotSerialized) { If (LEqual (\BCCL, Zero)) {} Else { Decrement (\BCCL) } Store (\BCCL, \_T00Local1) If (LEqual (0x00, \_T00Local1)) { Store (\BLV0, Local0) } Else { If (LEqual (0x01, \_T00Local1)) { Store (\BLV1, Local0) } Else { If (LEqual (0x02, \_T00Local1)) { Store (\BLV2, Local0) } Else { If (LEqual (0x03, \_T00Local1)) { Store (\BLV3, Local0) } Else { If (LEqual (0x04, \_T00Local1)) { Store (\BLV4, Local0) } Else { If (LEqual (0x05, \_T00Local1)) { Store (\BLV5, Local0) } Else { If (LEqual (0x06, \_T00Local1)) { Store (\BLV6, Local0) } Else { If (LEqual (0x07, \_T00Local1)) { Store (\BLV7, Local0) } } } } } } } } STC4 (Local0, 0x83) STC4 (Local0, 0x82) } Method (_Q10, 0, NotSerialized) { If (LLessEqualLNot (LGreater (\BCCL, 0x06))) { Increment (\BCCL) } Else { Store (0x07, \BCCL) } Store (\BCCL, \_T01Local1) If (LEqual (0x00, \_T01Local1)) { Store (\BLV0, Local0) } Else { If (LEqual (0x01, \_T01Local1)) { Store (\BLV1, Local0) } Else { If (LEqual (0x02, \_T01Local1)) { Store (\BLV2, Local0) } Else { If (LEqual (0x03, \_T01Local1)) { Store (\BLV3, Local0) } Else { If (LEqual (0x04, \_T01Local1)) { Store (\BLV4, Local0) } Else { If (LEqual (0x05, \_T01Local1)) { Store (\BLV5, Local0) } Else { If (LEqual (0x06, \_T01Local1)) { Store (\BLV6, Local0) } Else { If (LEqual (0x07, \_T01Local1)) { Store (\BLV7, Local0) } } } } } } } } STC4 (Local0, 0x83) STC4 (Local0, 0x82) } Method (_Q2F, 0, NotSerialized) { Acquire (\ECMX, 0xA000) Store (P55S, \_SB.PCI0.SBRG.LIDS) Release (\ECMX) Notify (\_SB.PCI0.SBRG.LIDD, 0x80) } Method (_Q35, 0, NotSerialized) { Store (Zero, P65M) Store (0x71, APMS) Store (0xEC, APMC) Store (0x01, P65M) Notify (\_SB.PCI0.AC, 0x00) Notify (\_SB.PCI0.BAT0, 0x00) Acquire (\MUEC, 0x8000) Notify (\_SB.PCI0.AC, 0x80) Sleep (0x14) Notify (\_SB.PCI0.BAT0, 0x80) Sleep (0x14) Notify (\_PR.CPU1, 0x80) Sleep (0x64) Notify (\_PR.CPU1, 0x81) Sleep (0x64) Notify (\_SB.PCI0.AC, 0x00) Notify (\_SB.PCI0.AC, 0x80) Notify (\_SB.PCI0.BAT0, 0x00) Notify (\_SB.PCI0.BAT0, 0x80) Increment (APMS) If (LAnd (\_SB.PCI0.SBRG.EC0.ACS (), \_SB.PCI0.SBRG.EC0.BATS ())) { If (LNotEqualLNot (LEqual (\_SB.PCI0.SBRG.EC0.RWRD (0x16, 0x01), Zero))) { \_SB.PCI0.SBRG.EC0.WWRD (0x16, 0x01, 0x00, 0x00) } } Release (\MUEC) } Method (_Q36, 0, NotSerialized) { Notify (\_SB.PCI0.BAT0, 0x00) Notify (\_SB.PCI0.BAT0, 0x80) Notify (\_SB.PCI0.AC, 0x00) Sleep (0x01F4) If (\_SB.PCI0.SBRG.EC0.BATS ()) { Store (0x01, P66A) \_SB.PCI0.SBRG.EC0.WRAM (0x01, 0xF2, 0x03) Store (0x16, \_SB.PCI0.SBRG.EC0.ADDR) Store (0x01, \_SB.PCI0.SBRG.EC0.SCMD) Store (0x00, \_SB.PCI0.SBRG.EC0.SMD0) Store (0x00, \_SB.PCI0.SBRG.EC0.SMD1) Store (0x08, \_SB.PCI0.SBRG.EC0.PRTC) } Else { Store (0x00, P66A) \_SB.PCI0.SBRG.EC0.WRAM (0x01, 0xF2, 0x02) } Notify (\_SB.PCI0.BAT0, 0x00) Notify (\_SB.PCI0.BAT0, 0x80) Notify (\_SB.PCI0.AC, 0x00) Notify (\_SB.PCI0.AC, 0x80) } Name (MAXB, 0x01) Method (_Q09, 0, NotSerialized) { If (LEqual (\_SB.PCI0.SBRG.EC0.ACS (), 0x00)) { Store (0x02, MAXB) Notify (\_SB.PCI0.BAT0, 0x80) Sleep (0x03E8) Store (0x01, MAXB) } } Method (_Q0B, 0, NotSerialized) { Store (\_SB.PCI0.SBRG.EC0.STC3 (0x06), Local1) And (Local1, 0x08, Local1) If (LEqual (Local1, 0x08)) { \_SB.PCI0.SBRG.EC0.STC5 (0x5B) } Else { \_SB.PCI0.SBRG.EC0.STC5 (0x3B) } } OperationRegion (PMRG, SystemIO, PMBS, 0x80) Field (PMRG, ByteAcc, NoLock, Preserve) { Offset (0x39), , 4, GPIS, 1, Offset (0x3B), , 4, GPBE, 1 } OperationRegion (IOIOR, SystemIO, DPRT, 0x05) Field (IOIOR, ByteAcc, Lock, Preserve) { DAT0, 8, Offset (0x04), CMD0, 8 } Field (IOIOR, ByteAcc, Lock, Preserve) { Offset (0x04), OUTS, 1, INPS, 1 } Method (IRDY, 0, Serialized) { Return (LNot (INPS)) } Method (ORDY, 0, Serialized) { Return (OUTS) } Method (WATI, 0, Serialized) { Store (0x05, Local0) While (LAnd (Local0, LNot (IRDY ()))) { Sleep (0x01) Decrement (Local0) } Return (IRDY ()) } Method (WATO, 0, Serialized) { Store (0x05, Local0) While (LAnd (Local0, ORDY ())) { Sleep (0x01) Decrement (Local0) } Return (Not (ORDY ())) } Method (DLY0, 1, Serialized) { If (ECAV ()) { Store (Arg0, CDT1) Store (0x6B, CDT2) Store (0x00, CDT3) Store (0xBB, CMD1) Store (0x05, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT1 (Arg0) WDT2 (0x6B) WDT3 (0x00) WCMD (0xBB) Return (RDEC (0x05)) } } Method (ACS, 0, Serialized) { If (ECAV ()) { XOr (P65S, 0x01, Local0) Return (Local0) } Else { Store (0x00, Local1) Store (RDP6 (), Local1) And (Local1, 0x20, Local1) ShiftRight (Local1, 0x05, Local1) XOr (Local1, 0x01, Local1) Return (Local1) } } Method (BATS, 0, Serialized) { If (ECAV ()) { XOr (P66S, 0x01, Local0) Return (Local0) } Else { Store (0x00, Local1) Store (RDP6 (), Local1) And (Local1, 0x40, Local1) ShiftRight (Local1, 0x06, Local1) XOr (Local1, 0x01, Local1) Return (Local1) } } Method (RDP5, 0, Serialized) { RDEC (0x43) Return (RDEC (0x43)) } Method (RDP6, 0, Serialized) { RDEC (0x78) Return (RDEC (0x78)) } Method (STC3, 1, Serialized) { If (ECAV ()) { Store (Arg0, CDT1) Store (0xC3, CMD1) Store (0x07, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT1 (Arg0) WCMD (0xC3) Return (RDEC (0x05)) } } Method (STC4, 2, Serialized) { If (ECAV ()) { Store (Arg0, CDT1) Store (Arg1, CDT2) Store (0xC4, CMD1) Store (0x05, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT1 (Arg0) WDT2 (Arg1) WCMD (0xC4) Return (RDEC (0x05)) } } Method (STC5, 1, Serialized) { If (ECAV ()) { Store (Arg0, CDT1) Store (0xC5, CMD1) Store (0x05, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT1 (Arg0) WCMD (0xC5) Return (RDEC (0x05)) } } Method (STCA, 1, Serialized) { If (ECAV ()) { Store (Arg0, CDT1) Store (0xCA, CMD1) Store (0x0A, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT1 (Arg0) WCMD (0xCA) Return (RDEC (0x05)) } } Method (RBAT, 1, Serialized) { If (ECAV ()) { Store (0x00, CDT1) Store (Arg0, CDT2) Store (0xDA, CMD1) Store (0x05, Local0) While (LAnd (Local0, CMD1)) { Sleep (0x01) Decrement (Local0) } Return (CDT1) } Else { WDT2 (Arg0) WDT1 (0x00) WCMD (0xDA) RDEC (0x05) Return (RDEC (0x05)) } } Method (WCMD, 1, NotSerialized) { WREC (0x04, Arg0) } Method (WDT1, 1, NotSerialized) { WREC (0x05, Arg0) } Method (WDT2, 1, NotSerialized) { WREC (0x06, Arg0) } Method (WDT3, 1, NotSerialized) { WREC (0x07, Arg0) } Method (CLRB, 0, Serialized) { While (WATO ()) { Store (DAT0, Local0) } } Method (RDEC, 1, Serialized) { Store (0x00, GPBE) If (WATI ()) { Store (0x80, CMD0) If (WATI ()) { Store (Arg0, DAT0) If (WATO ()) { Store (DAT0, Local0) } } } Store (0x01, GPBS) Store (0x01, GPBE) Return (Local0) } Method (WREC, 2, Serialized) { Store (0x00, GPBE) If (WATI ()) { Store (0x81, CMD0) If (WATI ()) { Store (Arg0, DAT0) If (WATI ()) { Store (Arg1, DAT0) } } } Store (0x01, GPBS) Store (0x01, GPBE) } Method (RRAM, 2, NotSerialized) { Store (0xFF, Local0) If (LEqual (Acquire (\ECMX, 0xA000), 0x00)) { Store (Arg0, CDT3) Store (Arg1, CDT2) Store (0xBA, CMD1) Store (CMD1, Local0) While (Local0) { Store (CMD1, Local0) } Store (CDT1, Local0) Release (\ECMX) } Return (Local0) } Method (WRAM, 3, NotSerialized) { If (LEqual (Acquire (\ECMX, 0xA000), 0x00)) { Store (Arg0, CDT3) Store (Arg1, CDT2) Store (Arg2, CDT1) Store (0xBB, CMD1) Sleep (0xC8) Store (CMD1, Local0) While (Local0) { Store (CMD1, Local0) } Release (\ECMX) } } } } Scope (\_SB) { Alias (\_SB.PCI0.SBRG.EC0.ECAV, ECAV) Alias (\_SB.PCI0.SBRG.EC0.MAXB, MAXB) } Scope (\_SB.PCI0.SBRG.EC0) { Method (RSBT, 2, NotSerialized) { Acquire (ECMX, 0xFFFF) Store (0x07, Local0) While (Local0) { Decrement (Local0) Store (0x00, SSTS) Store (Arg0, ADDR) Store (Arg1, SCMD) Store (0x05, PRTC) Store (0x03, Local2) While (Local2) { Stall (0x0A) And (SSTS, 0x80, Local1) If (LEqual (Local1, 0x80)) { Store (0x00, Local0) Store (0x00, Local2) } Else { Decrement (Local2) } } } Release (ECMX) Return (SMD0) } Method (RBYT, 2, NotSerialized) { Acquire (ECMX, 0xFFFF) Store (0x07, Local0) While (Local0) { Decrement (Local0) Store (0x00, SSTS) Store (Arg0, ADDR) Store (Arg1, SCMD) Store (0x07, PRTC) Store (0x03, Local2) While (Local2) { Sleep (0x0A) And (SSTS, 0x80, Local1) If (LEqual (Local1, 0x80)) { Store (0x00, Local0) Store (0x00, Local2) } Else { Decrement (Local2) } } } Release (ECMX) Return (SMD0) } Method (WBYT, 3, NotSerialized) { Acquire (ECMX, 0xFFFF) Store (0x07, Local0) While (Local0) { Decrement (Local0) Store (0x00, SSTS) Store (Arg0, ADDR) Store (Arg1, SCMD) Store (Arg2, SMD0) Store (0x06, PRTC) Store (0x03, Local2) While (Local2) { Sleep (0x0A) And (SSTS, 0x80, Local1) If (LEqual (Local1, 0x80)) { Store (0x00, Local0) Store (0x00, Local2) } Else { Decrement (Local2) } } } Release (ECMX) } Method (RWRD, 2, NotSerialized) { Acquire (ECMX, 0xFFFF) Store (0x0F, Local0) While (Local0) { Decrement (Local0) Store (0x00, SSTS) Store (Arg0, ADDR) Store (Arg1, SCMD) Store (0x09, PRTC) Store (0x03, Local2) Stall (0x78) And (SSTS, 0x80, Local1) If (LEqual (Local1, 0x80)) { Store (0x00, Local0) } Else { Stall (0x78) } } Store (SMD0, DB00) Store (SMD1, DB01) Release (ECMX) Return (DW00) } Method (WWRD, 4, NotSerialized) { Acquire (ECMX, 0xFFFF) Store (0x07, Local0) While (Local0) { Decrement (Local0) Store (0x00, SSTS) Store (Arg0, ADDR) Store (Arg1, SCMD) Store (Arg2, SMD0) Store (Arg3, SMD1) Store (0x08, PRTC) Store (0x03, Local2) While (Local2) { Sleep (0x0A) And (SSTS, 0x80, Local1) If (LEqual (Local1, 0x80)) { Store (0x00, Local0) Store (0x00, Local2) } Else { Decrement (Local2) } } } Release (ECMX) } } Device (\_SB.PCI0.AC) { Name (_HID, "ACPI0003") Name (_PCL, Package (0x01) { \_SB.PCI0 }) Method (_PSR, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.ECAV ()) { If (\_SB.PCI0.SBRG.EC0.ACS ()) { Return (One) } Else { Return (Zero) } } Else { Return (One) } } Method (_INI, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.ACS ()) { \_SB.PCI0.SBRG.EC0.WREC (0x55, 0x90) } Else { \_SB.PCI0.SBRG.EC0.WREC (0x55, 0x80) } } } Device (\_SB.PCI0.BAT0) { Name (_HID, EisaId ("PNP0C0A")) Name (_UID, 0x00) Name (_PCL, Package (0x01) { \_SB.PCI0 }) Name (BADR, 0x16) Name (PAK0, Package (0x0D) { 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, "", "", "", "" }) Name (PAK1, Package (0x0D) { 0x00, 0x0FA0, 0x0FA0, 0x00, 0x2A30, 0x0190, 0xC8, 0x02, 0x24, "1000 Series", "1000\n\n", "LIon", "AVERATEC " }) Method (_BIF, 0, NotSerialized) { Acquire (BATX, 0xFFFF) Store (BIF1 (), Local0) Store (CAPD, Index (PAK1, 0x01)) Store (LFCC, Index (PAK1, 0x02)) Store (DCWN, Index (PAK1, 0x05)) Store (DCLW, Index (PAK1, 0x06)) Store (DVOT, Index (PAK1, 0x04)) Release (BATX) Return (PAK1) } Name (BFB0, Package (0x04) { 0x01, 0x03E8, 0x1130, 0x2A30 }) Method (_BST, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.ECFL) { If (\_SB.PCI0.SBRG.EC0.BATS ()) { Sleep (0x32) Acquire (BATX, 0xFFFF) Store (BST0 (), Index (BFB0, 0x00)) Store (BST2 (), Index (BFB0, 0x02)) Store (BST3 (), Index (BFB0, 0x03)) Release (BATX) } Else { Store (Zero, Index (BFB0, 0x00)) Store (Ones, Index (BFB0, 0x01)) Store (Ones, Index (BFB0, 0x02)) Store (Ones, Index (BFB0, 0x03)) } } Return (BFB0) } Method (_STA, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.BATS ()) { Return (0x1F) } Else { Return (0x0F) } } Method (_INI, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.BATS ()) { \_SB.PCI0.SBRG.EC0.WREC (0x56, 0x90) } Else { \_SB.PCI0.SBRG.EC0.WREC (0x56, 0x80) } } Name (SCAL, 0x0140) Name (SENR, 0x14) Name (CAPD, 0x00014820) Name (LFCC, 0x20D0) Name (DCWN, 0x01A4) Name (DCLW, 0x01A4) Name (DVOT, 0x0E) Method (BIF1, 0, Serialized) { Store (0x00, DW00) Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x10), LFCC) Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x18), Local0) Store (Local0, CAPD) Divide (CAPD, 0x14, Local0, Local1) Store (Local1, DCWN) Divide (CAPD, 0x19, Local0, Local1) Store (Local1, DCLW) Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x19), DVOT) Return (CAPD) } Method (BST0, 0, Serialized) { Store (0x02, Local0) Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x16), Local1) And (Local1, 0x60, Local1) If (LEqual (\_SB.PCI0.SBRG.EC0.ACS (), 0x01)) { If (LOr (LEqual (Local1, 0x60), LEqual (Local1, 0x20))) { Store (0x01, Local0) } } Else { Store (0x01, Local0) } Return (Local0) } Method (BST1, 0, Serialized) { Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x0B), Local0) Return (Local0) } Method (BST2, 0, Serialized) { Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x0F), Local0) Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x16), Local1) And (Local1, 0x0200, Local1) If (LEqual (Local1, 0x0200)) { \_SB.PCI0.SBRG.EC0.WWRD (0x16, 0x01, 0x00, 0x00) If (LEqual (\_SB.PCI0.SBRG.EC0.ACS (), Zero)) { Divide (LFCC, 0x32, Local1, Local0) } } Return (Local0) } Method (BST3, 0, Serialized) { Store (\_SB.PCI0.SBRG.EC0.RWRD (BADR, 0x09), Local0) Return (Local0) } Method (VSRC, 1, Serialized) { And (Arg0, 0xFFFF, Local0) And (Local0, 0x8000, Local1) If (Local1) { Not (Local0, Local0) And (Local0, 0xFFFF, Local0) Increment (Local0) } Multiply (Local0, 0x03E8, Local0) Multiply (0x08, SENR, Local1) Divide (Local0, Local1, Local2, Local3) Multiply (Local3, DVOT, Local3) Return (Local3) } Method (PFCC, 1, Serialized) { Multiply (Arg0, 0x03E8, Local0) Multiply (SCAL, SENR, Local1) Divide (Local0, Local1, Local2, Local3) Multiply (Local3, DVOT, Local3) Return (Local3) } } } 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 (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 (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) 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) 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) 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) 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) 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) 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) 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) 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) { /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF }) Name (AT02, Buffer (0x07) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 }) Name (AT03, Buffer (0x07) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 }) Name (AT04, Buffer (0x07) { /* 0000 */ 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)) If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, 0x00, 0x00), Local1) 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) 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) 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 (AC97) { Name (_ADR, 0x001F0005) } Device (MC97) { Name (_ADR, 0x001F0006) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x05, 0x04)) } } Device (USB1) { Name (_ADR, 0x001D0000) OperationRegion (BAR0, PCI_Config, 0xC4, 0x01) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 3, 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) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x03, 0x03)) } } Device (USB2) { Name (_ADR, 0x001D0001) OperationRegion (BAR0, PCI_Config, 0xC4, 0x01) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 3, 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) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x04, 0x03)) } } Device (USB3) { Name (_ADR, 0x001D0002) OperationRegion (BAR0, PCI_Config, 0xC4, 0x01) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 3, 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) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0C, 0x03)) } } Device (EUSB) { Name (_ADR, 0x001D0007) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0D, 0x03)) } } Device (IGFX) { Name (_ADR, 0x00020000) Name (SWIT, 0x00) Name (GDCS, 0x01) Name (GDGS, 0x00) Name (GDTS, 0x00) Name (GDFG, 0x00) Name (OLDS, 0x01) OperationRegion (GPRG, SystemIO, GPBS, 0x40) Field (GPRG, ByteAcc, NoLock, Preserve) { Offset (0x0C), Offset (0x0E), GP16, 1, GP17, 1, Offset (0x0F), , 1, GP25, 1, , 1, GP27, 1, GP28, 1, Offset (0x10), Offset (0x1B), , 1, GB25, 1, , 1, GB27, 1, GB28, 1, Offset (0x38), GP32, 1, GP33, 1, GP34, 1, GP35, 1, GP36, 1, GP37, 1, GP38, 1, GP39, 1, GP40, 1, GP41, 1, GP42, 1, GP43, 1 } Alias (\_SB.PCI0.IGFX.SWIT, \SWIT) Alias (\_SB.PCI0.IGFX.GDCS, \GDCS) Alias (\_SB.PCI0.IGFX.GDGS, \GDGS) Alias (\_SB.PCI0.IGFX.GDTS, \GDTS) Alias (\_SB.PCI0.IGFX.GDFG, \GDFG) Alias (\_SB.PCI0.IGFX.OLDS, \OLDS) Alias (\_SB.PCI0.IGFX.GP16, \GP16) Alias (\_SB.PCI0.IGFX.GP17, \GP17) Alias (\_SB.PCI0.IGFX.GP25, \GP25) Alias (\_SB.PCI0.IGFX.GP27, \GP27) Alias (\_SB.PCI0.IGFX.GP28, \GP28) Alias (\_SB.PCI0.IGFX.GP32, \GP32) Alias (\_SB.PCI0.IGFX.GP33, \GP33) Alias (\_SB.PCI0.IGFX.GP34, \GP34) Alias (\_SB.PCI0.IGFX.GP35, \GP35) Alias (\_SB.PCI0.IGFX.GP36, \GP36) Alias (\_SB.PCI0.IGFX.GP37, \GP37) Alias (\_SB.PCI0.IGFX.GP38, \GP38) Alias (\_SB.PCI0.IGFX.GP39, \GP39) Alias (\_SB.PCI0.IGFX.GP40, \GP40) Alias (\_SB.PCI0.IGFX.GP41, \GP41) Alias (\_SB.PCI0.IGFX.GP42, \GP42) Alias (\_SB.PCI0.IGFX.GP43, \GP43) Alias (\_SB.PCI0.IGFX.GB25, \GB25) Alias (\_SB.PCI0.IGFX.GB27, \GB27) Alias (\_SB.PCI0.IGFX.GB28, \GB28) Method (_DOS, 1, NotSerialized) { Store (Arg0, \SWIT) } Name (_DOD, Package (0x02) { 0x00010100, 0x00010110 }) Device (CRT) { Name (_ADR, 0x0100) Name (_DCS, 0x1F) Name (_DGS, 0x01) Method (_DSS, 1, NotSerialized) { Or (And (\GDGS, 0x01), ShiftLeft (And (Arg0, 0x01), 0x01), \GDGS) Or (And (\GDGS, 0x01), ShiftLeft (And (Arg0, 0x01), 0x01), \GDGS) If (LAnd (Arg0, 0x80000000)) { Store (\GDGS, \GDCS) If (LAnd (Arg0, 0x40000000)) { Store (\GDCS, Local0) Or (ShiftLeft (And (Local0, 0x01), 0x01), 0x1D, \_SB.PCI0.IGFX.LCD._DCS) Or (And (Local0, 0x02), 0x1D, \_SB.PCI0.IGFX.CRT._DCS) } } } } Device (LCD) { Name (_ADR, 0x0110) Name (_DCS, 0x1F) Name (_DGS, 0x01) Method (_DSS, 1, NotSerialized) { Or (And (\GDGS, 0x02), And (Arg0, 0x01), \GDGS) If (LAnd (Arg0, 0x80000000)) { Store (\GDGS, \GDCS) If (LAnd (Arg0, 0x40000000)) { Store (\GDCS, Local0) Or (ShiftLeft (And (Local0, 0x01), 0x01), 0x1D, \_SB.PCI0.IGFX.LCD._DCS) Or (And (Local0, 0x02), 0x1D, \_SB.PCI0.IGFX.CRT._DCS) } } } } Method (DCHG, 0, NotSerialized) { If (LEqual (\SWIT, 0x00)) { If (LEqual (\GDTS, 0x00)) { If (LEqual (\GDGS, 0x01)) { Store (0x00, \_SB.PCI0.IGFX.LCD._DGS) Store (0x01, \_SB.PCI0.IGFX.CRT._DGS) } If (LEqual (\GDGS, 0x02)) { Store (0x01, \_SB.PCI0.IGFX.LCD._DGS) Store (0x01, \_SB.PCI0.IGFX.CRT._DGS) } If (LEqual (\GDGS, 0x03)) { Store (0x01, \_SB.PCI0.IGFX.LCD._DGS) Store (0x00, \_SB.PCI0.IGFX.CRT._DGS) } If (LEqual (\OLDS, 0x00)) { Store (One, GP39) Sleep (0x0A) Store (One, GP27) Store (One, \OLDS) } Notify (\_SB.PCI0.IGFX, 0x80) } } If (LEqual (\SWIT, 0x01)) {} Sleep (0x03E8) } Method (LCDT, 0, NotSerialized) { If (LEqual (\SWIT, 0x00)) { If (LEqual (\GDGS, 0x01)) { If (LEqual (\OLDS, 0x00)) { Store (One, GP39) Sleep (0x32) Store (0x01, \_SB.PCI0.IGFX.LCD._DGS) Store (0x00, \_SB.PCI0.IGFX.CRT._DGS) Notify (\_SB.PCI0.IGFX, 0x80) Store (One, GP27) Store (One, \OLDS) } Else { Store (Zero, GP27) Store (Zero, GP39) Store (Zero, \OLDS) } } Else { If (LEqual (\GDGS, 0x02)) { Store (One, GP39) Sleep (0x32) Store (One, GP27) Store (One, \OLDS) Store (0x01, \_SB.PCI0.IGFX.LCD._DGS) Store (0x01, \_SB.PCI0.IGFX.CRT._DGS) Notify (\_SB.PCI0.IGFX, 0x80) } If (LEqual (\GDGS, 0x03)) { Store (Zero, GP27) Sleep (0x32) Store (Zero, GP39) Store (Zero, \OLDS) Store (0x02, \GDGS) } } } If (LEqual (\SWIT, 0x01)) {} Sleep (0x03E8) } } } Scope (\_GPE) { Method (_L0B, 0, NotSerialized) { Notify (\_SB.PCI0.POP4, 0x02) Notify (\_SB.PCI0.POP4.CBC0, 0x02) Notify (\_SB.PCI0.POP4.CBC1, 0x02) Notify (\_SB.PCI0.POP4.CBC2, 0x02) Notify (\_SB.PCI0.POP4.CBC3, 0x02) Notify (\_SB.PCI0.POP4.CBC4, 0x02) Notify (\_SB.PCI0.POP4.LAN0, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L05, 0, NotSerialized) { Notify (\_SB.PCI0.MC97, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L03, 0, NotSerialized) { Notify (\_SB.PCI0.USB1, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L04, 0, NotSerialized) { Notify (\_SB.PCI0.USB2, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0C, 0, NotSerialized) { Notify (\_SB.PCI0.USB3, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0D, 0, NotSerialized) { Notify (\_SB.PCI0.EUSB, 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, _Y0E) {15} }) CreateWordField (BUFA, \_SB._Y0E._INT0x01, 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) } } } Name (\ATSP, 0x0A) Name (\TC1, 0x03) Name (\TC2, 0x01) Name (\APSV, 0x5A) Name (\AHOT, 0x6E) Name (\ACRT, 0x78) Name (\ATMP, 0x00) Name (\SWTP, 0x01) Name (\BTRC, 0x64) Name (\BATL, 0x0A) Scope (\_TZ) { Method (RTMP, 0, NotSerialized) { If (LEqual (\ATMP, Zero)) { Sleep (0x03E8) } If (\_SB.PCI0.SBRG.EC0.ECFL) { If (LEqual (Acquire (\ECMX, 0xA000), 0x00)) { Store (\_SB.PCI0.SBRG.EC0.CPUT, Local0) Release (\ECMX) } } If (LEqual (\ATMP, Zero)) { And (Local0, 0xFF, \ATMP) \_TZ.UDTT () \_TZ.SFPW () Store (0x70, APMS) Store (0xEC, APMC) Store (NVGA, \GDGS) } And (Local0, 0xFF, \ATMP) } Method (UDTT, 0, NotSerialized) { If (LAnd (LGreater (\ATMP, \T01L), LLess (\ATMP, \T01H))) { Store (0x01, \SWTP) Store (T01H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T01L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T02L), LLess (\ATMP, \T02H))) { Store (0x02, \SWTP) Store (T02H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T02L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T03L), LLess (\ATMP, \T03H))) { Store (0x03, \SWTP) Store (T03H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T03L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T04L), LLess (\ATMP, \T04H))) { Store (0x04, \SWTP) Store (T04H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T04L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T05L), LLess (\ATMP, \T05H))) { Store (0x05, \SWTP) Store (T05H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T05L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T06L), LLess (\ATMP, \T06H))) { Store (0x06, \SWTP) Store (T06H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T06L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { If (LAnd (LGreater (\ATMP, \T07L), LLess (\ATMP, \T07H))) { Store (0x07, \SWTP) Store (T07H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T07L, \_SB.PCI0.SBRG.EC0.TM1L) } Else { } } } } } } } Notify (\_TZ.THRM, 0x81) Notify (\_TZ.THRM, 0x80) } Method (SFPW, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC0.ECFL) { If (LEqual (Acquire (\ECMX, 0xA000), 0x00)) { Store (\SWTP, \_T02Local1) If (LEqual (0x01, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP0L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP0H, 0x81) } Else { If (LEqual (0x02, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP1L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP1H, 0x81) } Else { If (LEqual (0x03, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP2L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP2H, 0x81) } Else { If (LEqual (0x04, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP2LFP3L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP2HFP3H, 0x81) } Else { If (LEqual (0x05, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP2LFP3L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP2HFP3H, 0x81) } Else { If (LEqual (0x06, \_T02Local1)) { \_SB.PCI0.SBRG.EC0.STC4 (FP2LFP3L, 0x80) \_SB.PCI0.SBRG.EC0.STC4 (FP2HFP3H, 0x81) } } } } } } Release (\ECMX) } } } ThermalZone (THRM) { Name (_TZD, Package (0x01) { \_PR.CPU1 }) Name (_TZP, 0x0A) Method (_CRT, 0, NotSerialized) { Return (KELV (\ACRT)) } Method (_HOT, 0, NotSerialized) { Return (KELV (\AHOT)) } Method (KELV, 1, NotSerialized) { And (Arg0, 0xFF, Local0) Multiply (Local0, 0x0A, Local0) Add (Local0, 0x0AAC, Local0) Return (Local0) } Method (_TMP, 0, NotSerialized) { \_TZ.RTMP () If (LEqual (\ATSP, Zero)) { Return (KELV (0x40)) } Else { Return (KELV (\ATMP)) } } Name (_PSL, Package (0x01) { \_PR.CPU1 }) Method (_TSP, 0, NotSerialized) { Multiply (\ATSP, 0x0A, Local0) Return (Local0) } Method (_TC1, 0, NotSerialized) { Return (\TC1) } Method (_TC2, 0, NotSerialized) { Return (\TC2) } Method (_PSV, 0, NotSerialized) { Return (KELV (\APSV)) } } } Scope (\_SB.PCI0.SBRG.EC0) { Field (ECOR, ByteAcc, Lock, Preserve) { Offset (0x80), HYF0, 1, Offset (0x83), CPUT, 8, TM0L, 8, TM0H, 8, Offset (0x88), HYF1, 1, Offset (0x8C), TM1L, 8, TM1H, 8, Offset (0x90), HYF2, 1, Offset (0x93), BATT, 8, TM2L, 8, TM2H, 8, Offset (0x98), HYF3, 1, Offset (0x9C), TM3L, 8, TM3H, 8 } Method (_Q38, 0, NotSerialized) { \_TZ.RTMP () If (LGreater (Subtract (\ATMP, \_SB.PCI0.SBRG.EC0.TM0H), 0x0A)) { \_TZ.UDTT () } Else { Store (\SWTP, \_T03Local1) If (LEqual (0x01, \_T03Local1)) { Store (T02H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T02L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x02, \SWTP) } Else { If (LEqual (0x02, \_T03Local1)) { Store (T03H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T03L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x03, \SWTP) } Else { If (LEqual (0x03, \_T03Local1)) { Store (T04H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T04L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x04, \SWTP) Store (T04L, \APSV) Notify (\_TZ.THRM, 0x81) Notify (\_TZ.THRM, 0x80) } Else { If (LEqual (0x04, \_T03Local1)) { Store (T05H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T05L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x05, \SWTP) Notify (\_TZ.THRM, 0x80) } Else { If (LEqual (0x05, \_T03Local1)) { Store (T06H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T06L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x06, \SWTP) } } } } } } Store (0x00, \_SB.PCI0.SBRG.EC0.HYF0) Store (0x00, \_SB.PCI0.SBRG.EC0.HYF1) \_TZ.SFPW () } Method (_Q39, 0, NotSerialized) { Notify (\_TZ.THRM, 0x80) If (LGreater (Subtract (\_SB.PCI0.SBRG.EC0.TM1L, \ATMP), 0x0A)) { Store (0x5A, \APSV) \_TZ.UDTT () } Else { Store (\SWTP, \_T04Local1) If (LEqual (0x02, \_T04Local1)) { Store (T01H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T01L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x01, \SWTP) } Else { If (LEqual (0x03, \_T04Local1)) { Store (T02H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T02L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x02, \SWTP) } Else { If (LEqual (0x04, \_T04Local1)) { Store (T03H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T03L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x03, \SWTP) Store (T03H, \APSV) Notify (\_TZ.THRM, 0x81) Notify (\_TZ.THRM, 0x80) } Else { If (LEqual (0x05, \_T04Local1)) { Store (T04H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T04L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x04, \SWTP) } Else { If (LEqual (0x06, \_T04Local1)) { Store (T05H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T05L, \_SB.PCI0.SBRG.EC0.TM1L) Store (0x05, \SWTP) } } } } } } Store (0x00, \_SB.PCI0.SBRG.EC0.HYF0) Store (0x00, \_SB.PCI0.SBRG.EC0.HYF1) \_TZ.SFPW () } Method (_Q3A, 0, NotSerialized) { Store (0x3A, DBG8) If (LGreater (\_SB.PCI0.SBRG.EC0.BATT, BATL)) { Store (BATL, \_SB.PCI0.SBRG.EC0.TM2L) Store (0x65, \_SB.PCI0.SBRG.EC0.TM2H) Store (Zero, \GB28) } Else { Store (0x00, \_SB.PCI0.SBRG.EC0.TM2L) Store (BATL, \_SB.PCI0.SBRG.EC0.TM2H) Store (One, \GB28) } Store (Zero, \_SB.PCI0.SBRG.EC0.HYF2) } } Scope (\_SB) { Scope (PCI0) { Name (CRS, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, // Address Space Granularity 0x0000, // Address Range Minimum 0x00FF, // Address Range Maximum 0x0000, // Address Translation Offset 0x0100, // Address Length ,, ,,) IO (Decode16, 0x0CF8, // Address Range Minimum 0x0CF8, // Address Range Maximum 0x01, // Address Alignment 0x08, // Address Length ) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Address Space Granularity 0x0000, // Address Range Minimum 0x0CF7, // Address Range Maximum 0x0000, // Address Translation Offset 0x0CF8, // Address Length ,, , ,,, TypeStatic) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Address Space Granularity 0x0D00, // Address Range Minimum 0xFFFF, // Address Range Maximum 0x0000, // Address Translation Offset 0xF300, // Address Length ,, , ,,, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Address Space Granularity 0x000A0000, // Address Range Minimum 0x000BFFFF, // Address Range Maximum 0x00000000, // Address Translation Offset 0x00020000, // Address Length ,, , ,,, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Address Space Granularity 0x000C0000, // Address Range Minimum 0x000DFFFF, // Address Range Maximum 0x00000000, // Address Translation Offset 0x00020000, // Address Length ,, _Y0F, ,,, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Address Space Granularity 0x00000000, // Address Range Minimum 0x00000000, // Address Range Maximum 0x00000000, // Address Translation Offset 0x00000000, // Address Length ,, _Y10, ,,, AddressRangeMemory, TypeStatic) }) CreateDWordField (CRS, \_SB.PCI0._Y0F._MIN0x5C, MIN5) CreateDWordField (CRS, \_SB.PCI0._Y0F._MAX0x60, MAX5) CreateDWordField (CRS, \_SB.PCI0._Y0F._LEN0x68, LEN5) CreateDWordField (CRS, \_SB.PCI0._Y10._MIN0x76, MIN6) CreateDWordField (CRS, \_SB.PCI0._Y10._MAX0x7A, MAX6) CreateDWordField (CRS, \_SB.PCI0._Y10._LEN0x82, 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) Method (_PTS, 1, NotSerialized) { Store (Arg0, DBG8) PTS (Arg0) Store (Zero, \ATSP) Store (T05H, \_SB.PCI0.SBRG.EC0.TM0H) Store (T01L, \_SB.PCI0.SBRG.EC0.TM1L) Notify (\_TZ.THRM, 0x81) Notify (\_TZ.THRM, 0x80) Store (0x0A, \ATSP) Store (0x00, Index (WAKP, 0x00)) Store (0x00, Index (WAKP, 0x01)) If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02))) { Sleep (0x0BB8) } Store (ASSB, WSSB) Store (AOTB, WOTB) Store (AAXB, WAXB) Acquire (\ECMX, 0xFFFF) If (LAnd (LEqual (Arg0, 0x03), LEqual (\_SB.PCI0.SBRG.EC0.RRAM (0x01, 0x8F), 0x18))) { If (\_SB.PCI0.SBRG.EC0.BATS ()) { Divide (\_SB.PCI0.BAT0.LFCC, 0x0A, Local0, Local1) Store (\_SB.PCI0.SBRG.EC0.RWRD (0x16, 0x0F), Local0) If (LGreater (Local0, Local1)) { Divide (Local1, 0x0100, Local0, Local1) } Else { Divide (Local0, 0x0100, Local0, Local1) } \_SB.PCI0.SBRG.EC0.WWRD (0x16, 0x01, Local0, Local1) } } Release (\ECMX) Store (Arg0, ASSB) Store (OSFL (), AOTB) Store (Zero, AAXB) } Method (_WAK, 1, NotSerialized) { ShiftLeft (Arg0, 0x04, DBG8) Store (0x01, \_SB.PCI0.SBRG.LIDS) WAK (Arg0) If (ASSB) { Store (WSSB, ASSB) Store (WOTB, AOTB) Store (WAXB, AAXB) } If (DerefOf (Index (WAKP, 0x00))) { Store (0x00, Index (WAKP, 0x01)) } Else { Store (Arg0, Index (WAKP, 0x01)) } Acquire (\ECMX, 0xFFFF) Store (\_SB.PCI0.SBRG.EC0.P55S, \_SB.PCI0.SBRG.LIDS) And (\_SB.PCI0.SBRG.EC0.P55C, 0xEF, \_SB.PCI0.SBRG.EC0.P55C) Store (0x80, \_SB.PCI0.SBRG.EC0.P55T) Sleep (0x0A) \_SB.PCI0.SBRG.EC0.STCA (0x06) If (LAnd (LEqual (Arg0, 0x03), LEqual (\_SB.PCI0.SBRG.EC0.RRAM (0x01, 0x8F), 0x18))) { If (\_SB.PCI0.SBRG.EC0.BATS ()) { Store (\_SB.PCI0.SBRG.EC0.RWRD (0x16, 0x16), Local1) And (Local1, 0x0200, Local1) If (LEqual (Local1, Zero)) { \_SB.PCI0.SBRG.EC0.WWRD (0x16, 0x01, 0x00, 0x00) } } } If (\_SB.PCI0.SBRG.EC0.BATS ()) { \_SB.PCI0.SBRG.EC0.WRAM (0x01, 0xF2, 0x03) } Else { \_SB.PCI0.SBRG.EC0.WRAM (0x01, 0xF2, 0x02) } Release (\ECMX) If (RTCX) {} Else { Notify (\_SB.PWRB, 0x02) } Sleep (0x07D0) Store (0x0A, \ATSP) \_TZ.UDTT () \_TZ.SFPW () Return (WAKP) } OperationRegion (BDA, SystemMemory, 0x04E0, 0x01) Field (BDA, ByteAcc, NoLock, Preserve) { , 2, RTCX, 1 } Name (\_S0, Package (0x04) { 0x00, 0x00, 0x00, 0x00 }) If (SS3) { Name (\_S3, Package (0x04) { 0x05, 0x00, 0x00, 0x00 }) } If (SS4) { Name (\_S4, Package (0x04) { 0x07, 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) } } Method (WAK, 1, NotSerialized) { \_SB.PCI0.NWAK (Arg0) \_SB.PCI0.SBRG.SWAK (Arg0) } }