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.
/*
* 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)
}
}
/*
* 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)
}
}