Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
16888 lines (15563 sloc) 612 KB
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20130328-64 [Apr 5 2013]
* Copyright (c) 2000 - 2013 Intel Corporation
*
* Disassembly of dsdt.dat, Mon Apr 29 23:02:39 2013
*
* Original Table Header:
* Signature "DSDT"
* Length 0x00011490 (70800)
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
* Checksum 0xDC
* OEM ID "HP "
* OEM Table ID "INSYDE "
* OEM Revision 0xF0000000 (4026531840)
* Compiler ID "ACPI"
* Compiler Version 0x00040000 (262144)
*/
DefinitionBlock ("dsdt.aml", "DSDT", 1, "HP ", "INSYDE ", 0xF0000000)
{
/*
* iASL Warning: There were 1 external control methods found during
* disassembly, but additional ACPI tables to resolve these externals
* were not specified. This resulting disassembler output file may not
* compile because the disassembler did not know how many arguments
* to assign to these methods. To specify the tables needed to resolve
* external control method references, use the one of the following
* example iASL invocations:
* iasl -e <ssdt1.aml,ssdt2.aml...> -d <dsdt.aml>
* iasl -e <dsdt.aml,ssdt2.aml...> -d <ssdt1.aml>
*/
External (_PR_.C000._PPC, IntObj)
External (_PR_.C001._PPC)
External (_PR_.C002._PPC)
External (_PR_.C003._PPC)
External (ALIB, MethodObj) // Warning: unresolved Method, assuming 2 arguments (may be incorrect, see warning above)
OperationRegion (SPRT, SystemIO, 0xB0, 0x02)
Field (SPRT, ByteAcc, Lock, Preserve)
{
SSMP, 8
}
OperationRegion (CMS1, SystemIO, 0x72, 0x02)
Field (CMS1, ByteAcc, NoLock, Preserve)
{
CMSI, 8,
CMSD, 8
}
IndexField (CMSI, CMSD, ByteAcc, NoLock, Preserve)
{
Offset (0x82),
GDAF, 8,
GDA0, 8,
CDAF, 8,
CDA0, 8,
FDAF, 8,
FDA0, 8,
BDAF, 8,
BDA0, 8,
Offset (0xC1),
IOSF, 1,
Offset (0xC5),
EFID, 8,
EFI1, 8,
WANT, 1,
Offset (0xC8),
GPSF, 1,
Offset (0xD2),
WLWI, 1,
BTWI, 1,
WWWI, 1,
BTNS, 1,
SIMD, 1,
WAPT, 1,
Offset (0xD3),
WLBK, 1,
BTBK, 1,
WWBK, 1,
BTNB, 1,
Offset (0xD4),
WBCB, 1,
Offset (0xD6),
UND0, 1,
UND1, 1,
UND2, 1,
Offset (0xE0),
S4FG, 8,
HOTW, 8,
Offset (0xF7),
HSDC, 8,
HSDS, 8,
HBUC, 8,
HBUS, 8
}
Method (CMSW, 2, NotSerialized)
{
Store (Arg0, CMSI)
Store (Arg1, CMSD)
}
OperationRegion (DBG0, SystemIO, 0x80, One)
Field (DBG0, ByteAcc, NoLock, Preserve)
{
IO80, 8
}
OperationRegion (DBG1, SystemIO, 0x80, 0x02)
Field (DBG1, WordAcc, NoLock, Preserve)
{
P80H, 16
}
OperationRegion (ACMS, SystemIO, 0x72, 0x02)
Field (ACMS, ByteAcc, NoLock, Preserve)
{
INDX, 8,
DATA, 8
}
IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
{
BRLS, 8,
BCMF, 8
}
OperationRegion (PSMI, SystemIO, 0xB0, 0x02)
Field (PSMI, ByteAcc, NoLock, Preserve)
{
APMC, 8,
APMD, 8
}
OperationRegion (PMRG, SystemIO, 0x0CD6, 0x02)
Field (PMRG, ByteAcc, NoLock, Preserve)
{
PMRI, 8,
PMRD, 8
}
IndexField (PMRI, PMRD, ByteAcc, NoLock, Preserve)
{
Offset (0x24),
MMSO, 32,
Offset (0x50),
HPAD, 32,
Offset (0x60),
P1EB, 16,
Offset (0xC8),
, 2,
SPRE, 1,
TPDE, 1,
Offset (0xF0),
, 3,
RSTU, 1
}
OperationRegion (P1E0, SystemIO, P1EB, 0x04)
Field (P1E0, ByteAcc, NoLock, Preserve)
{
, 14,
PEWS, 1,
WSTA, 1,
, 14,
PEWD, 1
}
OperationRegion (IOCC, SystemIO, 0x0400, 0x80)
Field (IOCC, ByteAcc, NoLock, Preserve)
{
Offset (0x01),
, 2,
RTCS, 1
}
Name (PRWP, Package (0x02)
{
Zero,
Zero
})
Method (GPRW, 2, NotSerialized)
{
Store (Arg0, Index (PRWP, Zero))
Store (Arg1, Index (PRWP, One))
If (LAnd (LEqual (DAS3, Zero), LEqual (DAS1, Zero)))
{
If (LLessEqual (Arg1, 0x03))
{
Store (Zero, Index (PRWP, One))
}
}
Else
{
If (LAnd (LEqual (DAS3, Zero), LEqual (Arg1, 0x03)))
{
Store (Zero, Index (PRWP, One))
}
If (LAnd (LEqual (DAS1, Zero), LEqual (Arg1, One)))
{
Store (Zero, Index (PRWP, One))
}
}
Return (PRWP)
}
Method (SPTS, 1, NotSerialized)
{
If (LEqual (Arg0, 0x03))
{
Store (Zero, RSTU)
}
Store (One, \_SB.PCI0.SMBS.CLPS)
Store (One, \_SB.PCI0.SMBS.SLPS)
Store (PEWS, PEWS)
}
Method (SWAK, 1, NotSerialized)
{
If (LEqual (Arg0, 0x03))
{
Store (One, RSTU)
}
Store (PEWS, PEWS)
Store (One, \_SB.PCI0.SMBS.PWDE)
Store (Zero, PEWD)
}
Method (CHKH, 0, NotSerialized)
{
If (\_SB.PCI0.SMBS.G05S)
{
Store (One, \_SB.PCI0.SMBS.G05T)
}
Else
{
Store (Zero, \_SB.PCI0.SMBS.G05T)
}
Store (Not (\_SB.PCI0.SMBS.GE16), \_SB.PCI0.SMBS.G16T)
}
OperationRegion (GNVS, SystemMemory, 0xAFEBED98, 0x00000013)
Field (GNVS, AnyAcc, NoLock, Preserve)
{
DAS1, 8,
DAS3, 8,
TNBH, 8,
TCP0, 8,
TCP1, 8,
ATNB, 8,
PCP0, 8,
PCP1, 8,
PWMN, 8,
LPTY, 8,
M92D, 8,
WKPM, 8,
ALST, 8,
AFUC, 8,
EXUS, 8,
AIRC, 8,
WLSH, 8,
TSSS, 8,
ODZC, 8
}
OperationRegion (OGNS, SystemMemory, 0xAFEB9018, 0x000010B6)
Field (OGNS, AnyAcc, Lock, Preserve)
{
SERN, 80,
MDID, 256,
GUID, 64,
UUID, 128,
SKUN, 96,
LCOD, 24,
MACA, 48,
KBMX, 8,
CHID, 8,
OSKU, 8,
QKPM, 8,
WPFL, 8,
DBSW, 8,
WPCR, 8,
WINA, 8,
GPSA, 8,
MSME, 8,
PREV, 24,
ODDC, 8,
WIN7, 8,
IMID, 8,
WSDY, 32,
WSDM, 16,
WSDD, 16,
CTNU, 112,
ESTL, 8,
Offset (0x1000),
HWCT, 8,
HWBC, 8,
HWRC, 8,
HWBF, 1024,
IAOR, 8,
CDAT, 32,
WLVD, 16,
WLDD, 16,
WLSV, 16,
WLSS, 16,
BTVD, 16,
BTDD, 16,
WWVD, 16,
WWDD, 16,
GPVD, 16,
GPDD, 16,
FACM, 16,
SMA4, 8,
WIVD, 16,
WIDD, 16,
OG00, 8,
OG01, 8,
OG02, 8,
OG03, 8,
OG04, 8,
OG05, 8,
OG06, 8,
OG07, 8,
OG08, 8,
OG09, 8,
OG10, 8,
SMP0, 8,
SMP1, 8,
SMP2, 8,
SMP3, 8,
SMP4, 8,
SMP5, 8,
SMP6, 8,
SMP7, 8
}
OperationRegion (FXEM, SystemMemory, 0xFFE30000, 0xFF)
Field (FXEM, AnyAcc, Lock, Preserve)
{
Offset (0x71),
UNDA, 1,
UNDB, 1,
UNDC, 1,
Offset (0x72),
WINC, 8,
GCAC, 8
}
OperationRegion (H1DA, SystemMemory, 0xAFEBEF98, 0x0000001F)
Field (H1DA, AnyAcc, Lock, Preserve)
{
H1SG, 32,
RCKP, 8,
HDSM, 16,
HD1H, 64,
HD2H, 64,
OD1H, 64
}
OperationRegion (HSMI, SystemIO, 0xB0, 0x02)
Field (HSMI, ByteAcc, NoLock, Preserve)
{
HSMC, 8,
HSMS, 8
}
OperationRegion (NVST, SystemMemory, 0xAFEBDD61, 0x0000014F)
Field (NVST, AnyAcc, Lock, Preserve)
{
SMIF, 8,
PRM0, 8,
PRM1, 8,
BRTL, 8,
TLST, 8,
IGDS, 8,
LCDA, 16,
CSTE, 16,
NSTE, 16,
CADL, 16,
PADL, 16,
LIDS, 8,
PWRS, 8,
BVAL, 32,
ADDL, 16,
BCMD, 8,
DID, 32,
INFO, 2048,
TOML, 8,
TOMH, 8,
CEBP, 8,
C0LS, 8,
C1LS, 8,
C0HS, 8,
C1HS, 8,
ROMS, 32,
MUXF, 8,
PDDN, 8,
CMTF, 8,
CMTI, 32,
CMTO, 8,
WWID, 32,
BLID, 32,
BTID, 32,
SID0, 8,
SID1, 8,
SID2, 8,
SID3, 8,
SID4, 8,
SID5, 8,
SID6, 8,
SID7, 8,
LCDD, 32,
JYNC, 8,
GSEN, 8,
LCD2, 32,
BCMV, 8
}
Method (SCMP, 2, NotSerialized)
{
Name (STG1, Buffer (0x50) {})
Name (STG2, Buffer (0x50) {})
Store (Arg0, STG1)
Store (Arg1, STG2)
If (LNotEqual (SizeOf (Arg0), SizeOf (Arg1)))
{
Return (Zero)
}
Store (Zero, Local0)
While (LLess (Local0, SizeOf (Arg0)))
{
If (LNotEqual (DerefOf (Index (STG1, Local0)), DerefOf (Index (
STG2, Local0))))
{
Return (Zero)
}
Increment (Local0)
}
Return (One)
}
Name (WNOS, Zero)
Name (MYOS, Zero)
Name (HTTS, Zero)
Name (OSTB, Ones)
Name (TPOS, Zero)
Name (LINX, Zero)
Name (OSSP, Zero)
Method (CKOS, 0, NotSerialized)
{
If (LEqual (WNOS, Zero))
{
If (SCMP (_OS, "Microsoft Windows"))
{
Store (One, WNOS)
}
If (SCMP (_OS, "Microsoft Windows NT"))
{
Store (0x02, WNOS)
}
If (SCMP (_OS, "Microsoft WindowsME: Millennium Edition"))
{
Store (0x03, WNOS)
}
If (CondRefOf (_OSI, Local0))
{
If (SCMP (_OS, "Windows 2006"))
{
Store (0x05, WNOS)
}
Else
{
If (SCMP (_OS, "Windows 2009"))
{
Store (0x06, WNOS)
}
Else
{
Store (0x04, WNOS)
}
}
}
}
Return (WNOS)
}
Method (SEQL, 2, Serialized)
{
Store (SizeOf (Arg0), Local0)
Store (SizeOf (Arg1), Local1)
If (LNotEqual (Local0, Local1))
{
Return (Zero)
}
Name (BUF0, Buffer (Local0) {})
Store (Arg0, BUF0)
Name (BUF1, Buffer (Local0) {})
Store (Arg1, BUF1)
Store (Zero, Local2)
While (LLess (Local2, Local0))
{
Store (DerefOf (Index (BUF0, Local2)), Local3)
Store (DerefOf (Index (BUF1, Local2)), Local4)
If (LNotEqual (Local3, Local4))
{
Return (Zero)
}
Increment (Local2)
}
Return (One)
}
Method (OSTP, 0, NotSerialized)
{
If (LEqual (OSTB, Ones))
{
If (CondRefOf (_OSI, Local0))
{
Store (Zero, OSTB)
Store (Zero, TPOS)
If (_OSI ("Windows 2001"))
{
Store (0x08, OSTB)
Store (0x08, TPOS)
}
If (_OSI ("Windows 2001.1"))
{
Store (0x20, OSTB)
Store (0x20, TPOS)
}
If (_OSI ("Windows 2001 SP1"))
{
Store (0x10, OSTB)
Store (0x10, TPOS)
}
If (_OSI ("Windows 2001 SP2"))
{
Store (0x11, OSTB)
Store (0x11, TPOS)
}
If (_OSI ("Windows 2001 SP3"))
{
Store (0x12, OSTB)
Store (0x12, TPOS)
}
If (_OSI ("Windows 2006"))
{
Store (0x40, OSTB)
Store (0x40, TPOS)
}
If (_OSI ("Windows 2006 SP1"))
{
Store (0x41, OSTB)
Store (0x41, TPOS)
Store (One, OSSP)
}
If (_OSI ("Windows 2009"))
{
Store (One, OSSP)
Store (0x50, OSTB)
Store (0x50, TPOS)
}
If (_OSI ("Linux"))
{
Store (One, LINX)
Store (0x80, OSTB)
Store (0x80, TPOS)
}
}
Else
{
If (CondRefOf (_OS, Local0))
{
If (SEQL (_OS, "Microsoft Windows"))
{
Store (One, OSTB)
Store (One, TPOS)
}
Else
{
If (SEQL (_OS, "Microsoft WindowsME: Millennium Edition"))
{
Store (0x02, OSTB)
Store (0x02, TPOS)
}
Else
{
If (SEQL (_OS, "Microsoft Windows NT"))
{
Store (0x04, OSTB)
Store (0x04, TPOS)
}
Else
{
Store (Zero, OSTB)
Store (Zero, TPOS)
}
}
}
}
Else
{
Store (Zero, OSTB)
Store (Zero, TPOS)
}
}
}
Return (OSTB)
}
Scope (_PR)
{
Processor (C000, 0x00, 0x00000410, 0x06) {}
Processor (C001, 0x01, 0x00000000, 0x00) {}
Processor (C002, 0x02, 0x00000000, 0x00) {}
Processor (C003, 0x03, 0x00000000, 0x00) {}
}
Name (_S0, Package (0x04) // _S0_: S0 System State
{
Zero,
Zero,
Zero,
Zero
})
If (LEqual (DAS1, One)) {}
If (LEqual (DAS3, One))
{
Name (_S3, Package (0x04) // _S3_: S3 System State
{
0x03,
0x03,
Zero,
Zero
})
}
Name (_S4, Package (0x04) // _S4_: S4 System State
{
0x04,
0x04,
Zero,
Zero
})
Name (_S5, Package (0x04) // _S5_: S5 System State
{
0x05,
0x05,
Zero,
Zero
})
Scope (_GPE)
{
Method (_L1C, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Store (0xFFFF, Local1)
Store (\_SB.PCI0.SMBS.MIN, Local2)
ShiftLeft (Local2, 0x08, Local1)
Store (\_SB.PCI0.SMBS.SEC, Local2)
Or (Local1, Local2, Local1)
Store (Local1, P80H)
}
Method (_L08, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.PB2, 0x02)
Notify (\_SB.PCI0.PB3, 0x02)
Notify (\_SB.PCI0.PB4, 0x02)
Notify (\_SB.PCI0.PB5, 0x02)
Notify (\_SB.PCI0.PB6, 0x02)
Notify (\_SB.PCI0.PB7, 0x02)
Notify (\_SB.PCI0.SPB0, 0x02)
Notify (\_SB.PCI0.SPB1, 0x02)
Notify (\_SB.PCI0.SPB2, 0x02)
Notify (\_SB.PCI0.SPB3, 0x02)
}
Name (XX05, Buffer (One)
{
0x05
})
Name (XX06, Buffer (One)
{
0x05
})
Method (_L05, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Name (HPOK, Zero)
Sleep (0xC8)
If (\_SB.PCI0.SMBS.GE05)
{
Store (Zero, \_SB.PCI0.SMBS.G05T)
}
Else
{
Store (One, \_SB.PCI0.SMBS.G05T)
}
Notify (\_SB.PCI0.SPB2, Zero)
}
Method (_L18, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.OHC1, 0x02)
Notify (\_SB.PCI0.OHC2, 0x02)
Notify (\_SB.PCI0.OHC3, 0x02)
Notify (\_SB.PCI0.OHC4, 0x02)
Notify (\_SB.PCI0.EHC1, 0x02)
Notify (\_SB.PCI0.EHC2, 0x02)
Notify (\_SB.PCI0.EHC3, 0x02)
Notify (\_SB.PCI0.XHC0, 0x02)
Notify (\_SB.PCI0.XHC1, 0x02)
Notify (\_SB.PWRB, 0x02)
}
Method (_L10, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
If (LEqual (ODZC, One))
{
If (\_SB.PCI0.SMBS.G16T)
{
Sleep (0x14)
If (\_SB.PCI0.SMBS.GE16)
{
Store (Zero, \_SB.PCI0.SMBS.G16T)
If (LOr (LEqual (\_SB.PCI0.SATA.VIDI, 0x78001022), LEqual (\_SB.PCI0.SATA.VIDI, 0x78011022)))
{
Notify (\_SB.PCI0.AFD, 0x80)
}
If (LEqual (\_SB.PCI0.SATA.VIDI, 0x78041022))
{
Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
}
Store (0xDF15, P80H)
}
}
Else
{
Sleep (0x14)
If (LNot (\_SB.PCI0.SMBS.GE16))
{
Store (One, \_SB.PCI0.SMBS.G16T)
If (LOr (LEqual (\_SB.PCI0.SATA.VIDI, 0x78001022), LEqual (\_SB.PCI0.SATA.VIDI, 0x78011022)))
{
Notify (\_SB.PCI0.AFD, 0x80)
}
If (LEqual (\_SB.PCI0.SATA.VIDI, 0x78041022))
{
Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
}
Store (0xDF14, P80H)
}
}
}
}
}
Scope (_TZ)
{
ThermalZone (THRM)
{
Name (REGN, "Processor Thermal Zone")
Name (FMAX, 0x15E0)
Name (FMIN, 0x07D0)
Method (FRSP, 0, NotSerialized)
{
If (\_SB.PCI0.LPC0.EC.ECOK)
{
Return (Multiply (\_SB.PCI0.LPC0.EC.FAT, 0xFF))
}
Return (FMAX)
}
Method (FSSP, 1, NotSerialized)
{
If (\_SB.PCI0.LPC0.EC.ECOK)
{
Store (And (LNot (Arg0), One), \_SB.PCI0.LPC0.EC.FST)
}
}
Method (_TMP, 0, Serialized) // _TMP: Temperature
{
If (\_SB.PCI0.LPC0.EC.ECOK)
{
Store (\_SB.PCI0.LPC0.EC.CPT0, Local0)
If (LEqual (HOTW, Zero))
{
If (LGreaterEqual (Local0, \_SB.PCI0.LPC0.EC.HOT))
{
Store (One, \_SB.PCI0.LPC0.EC.HOT4)
Store (One, HOTW)
}
}
Return (Add (Multiply (Local0, 0x0A), 0x0AAC))
}
Else
{
Return (0x0C3C)
}
}
Method (_AC0, 0, Serialized) // _ACx: Active Cooling
{
}
Method (_PSV, 0, NotSerialized) // _PSV: Passive Temperature
{
Return (Add (Multiply (\_SB.PCI0.LPC0.EC.CT0, 0x0A), 0x0AAC))
}
Method (_CRT, 0, Serialized) // _CRT: Critical Temperature
{
Store (\_SB.PCI0.LPC0.EC.CRT, Local0)
Return (Add (0x0AAC, Multiply (Local0, 0x0A)))
}
Method (_HOT, 0, NotSerialized) // _HOT: Hot Temperature
{
Store (\_SB.PCI0.LPC0.EC.HOT, Local0)
Return (Add (0x0AAC, Multiply (Local0, 0x0A)))
}
Method (_SCP, 1, Serialized) // _SCP: Set Cooling Policy
{
Store (Arg0, \_SB.PCI0.LPC0.EC.PAE)
}
Name (_AL0, Package (0x00) {}) // _ALx: Active List
Method (_PSL, 0, Serialized) // _PSL: Passive List
{
Return (Package (0x01)
{
\_PR.C000
})
}
Name (_TC1, Zero) // _TC1: Thermal Constant 1
Name (_TC2, Zero) // _TC2: Thermal Constant 2
Name (_TSP, 0x0A) // _TSP: Thermal Sampling Period
}
}
Name (PICM, Zero)
Name (GPIC, Zero)
Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
Store (Arg0, PICM)
Store (Arg0, GPIC)
If (GPIC)
{
\_SB.DSPI ()
}
}
Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep
{
Store (Zero, BRLS)
Store (Zero, BCMF)
SPTS (Arg0)
If (LEqual (Arg0, One))
{
Store (0x51, IO80)
\_SB.S80H (0x51)
}
If (LEqual (Arg0, 0x03))
{
Store (0x03, \_SB.PCI0.LPC0.EC.SLP)
Store (0x53, IO80)
\_SB.S80H (0x53)
Store (One, \_SB.PCI0.SMBS.SLPS)
}
If (LEqual (Arg0, 0x04))
{
Store (0x04, \_SB.PCI0.LPC0.EC.SLP)
CMSW (0xE0, 0x60)
Store (0x54, IO80)
\_SB.S80H (0x54)
Store (One, \_SB.PCI0.SMBS.SLPS)
Store (One, RSTU)
}
If (LEqual (Arg0, 0x05))
{
Store (0x05, \_SB.PCI0.LPC0.EC.SLP)
Store (0x55, IO80)
\_SB.S80H (0x55)
\_SB.GSMI (0x03)
}
}
Method (_WAK, 1, NotSerialized) // _WAK: Wake
{
Store (One, BRLS)
If (\_PR.C000._PPC)
{
Acquire (\_SB.PCI0.LPC0.EC.MTX2, 0xFFFF)
If (LEqual (\_SB.PCI0.CPF3.CORN, 0x03))
{
Store (Zero, \_PR.C003._PPC)
Notify (\_PR.C003, 0x80)
Store (Zero, \_PR.C002._PPC)
Notify (\_PR.C002, 0x80)
}
Store (Zero, \_PR.C001._PPC)
Notify (\_PR.C001, 0x80)
Store (Zero, \_PR.C000._PPC)
Notify (\_PR.C000, 0x80)
If (\_SB.PCI0.LPC0.EC.LPMF)
{
Sleep (0x32)
If (LEqual (\_SB.PCI0.CPF3.CORN, 0x03))
{
Store (One, \_PR.C003._PPC)
Notify (\_PR.C003, 0x80)
Store (One, \_PR.C002._PPC)
Notify (\_PR.C002, 0x80)
}
Store (One, \_PR.C001._PPC)
Notify (\_PR.C001, 0x80)
Store (One, \_PR.C000._PPC)
Notify (\_PR.C000, 0x80)
}
Release (\_SB.PCI0.LPC0.EC.MTX2)
}
Store (Zero, \_SB.PCI0.LPC0.EC.THFG)
CMSW (0xE0, Zero)
SWAK (Arg0)
If (LEqual (Arg0, One))
{
Store (0xE1, IO80)
\_SB.S80H (0xE1)
Store (0xF1, \_SB.PCI0.P2P.PR4B)
}
If (LEqual (Arg0, 0x03))
{
Store (0xE3, IO80)
\_SB.S80H (0xE3)
CHKH ()
Notify (\_SB.PWRB, 0x02)
}
If (LEqual (Arg0, 0x04))
{
Store (0xE4, IO80)
\_SB.S80H (0xE4)
\_SB.PCI0._INI ()
If (LOr (LEqual (TPOS, 0x40), LEqual (TPOS, 0x41)))
{
\_SB.PCI0.EHC1.STOS ()
\_SB.PCI0.EHC2.STOS ()
\_SB.PCI0.EHC3.STOS ()
}
Notify (\_SB.PWRB, 0x02)
}
Return (Zero)
}
Scope (_SB)
{
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C")) // _HID: Hardware ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0B)
}
}
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A08")) // _HID: Hardware ID
Name (_CID, EisaId ("PNP0A03")) // _CID: Compatible ID
Name (_ADR, Zero) // _ADR: Address
OperationRegion (SCTH, PCI_Config, 0x7A, One)
Field (SCTH, ByteAcc, NoLock, Preserve)
{
RSMF, 1
}
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
If (LEqual (GPIC, Zero)) {}
Else
{
DSPI ()
}
OSTP ()
CHKH ()
CMSW (0xE0, Zero)
If (CondRefOf (_OSI, Local0))
{
Store (Zero, MYOS)
}
Else
{
If (LEqual (SizeOf (_OS), 0x14))
{
Store (One, MYOS)
}
Else
{
If (LEqual (SizeOf (_OS), 0x27))
{
Store (0x02, MYOS)
}
Else
{
Store (0x03, MYOS)
}
}
}
}
OperationRegion (NBMS, PCI_Config, 0x60, 0x08)
Field (NBMS, DWordAcc, NoLock, Preserve)
{
MIDX, 32,
MIDR, 32
}
Mutex (NBMM, 0x00)
Method (NBMR, 1, NotSerialized)
{
Acquire (NBMM, 0xFFFF)
And (Arg0, 0x7F, Local0)
Store (Local0, MIDX)
Store (MIDR, Local0)
Store (0x7F, MIDX)
Release (NBMM)
Return (Local0)
}
Method (NBMW, 2, NotSerialized)
{
Acquire (NBMM, 0xFFFF)
And (Arg0, 0x7F, Local0)
Or (Local0, 0x80, Local0)
Store (Local0, MIDX)
Store (Arg1, MIDR)
Store (And (Local0, 0x7F, Local0), MIDX)
Release (NBMM)
}
OperationRegion (NBXP, PCI_Config, 0xE0, 0x08)
Field (NBXP, DWordAcc, NoLock, Preserve)
{
NBXI, 32,
NBXD, 32
}
Mutex (NBXM, 0x00)
Method (NBXR, 1, NotSerialized)
{
Acquire (NBXM, 0xFFFF)
Store (Arg0, NBXI)
Store (NBXD, Local0)
Store (Zero, NBXI)
Release (NBXM)
Return (Local0)
}
Method (NBXW, 2, NotSerialized)
{
Acquire (NBXM, 0xFFFF)
Store (Arg0, NBXI)
Store (Arg1, NBXD)
Store (Zero, NBXI)
Release (NBXM)
}
Method (XPTR, 2, NotSerialized)
{
If (LAnd (LLess (Arg0, 0x02), LGreater (Arg0, 0x07)))
{
Return (Zero)
}
Else
{
If (LLess (Arg0, 0x04))
{
Subtract (Arg0, 0x02, Local1)
Store (0x01310800, Local0)
}
Else
{
Subtract (Arg0, 0x04, Local1)
Store (0x01300900, Local0)
}
Add (Local0, ShiftLeft (Local1, 0x08), Local0)
ShiftLeft (Local0, Local1, Local0)
NBXW (Local0, Arg1)
Return (Ones)
}
}
Method (XPLP, 2, NotSerialized)
{
}
Method (XPLL, 2, NotSerialized)
{
}
Name (_UID, One) // _UID: Unique ID
Name (_BBN, Zero) // _BBN: BIOS Bus Number
Name (SUPP, Zero)
Name (CTRL, Zero)
Name (AMHP, Zero)
Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities
{
CreateDWordField (Arg3, Zero, CDW1)
CreateDWordField (Arg3, 0x04, CDW2)
CreateDWordField (Arg3, 0x08, CDW3)
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40,
/* 0008 */ 0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
}))
{
Store (CDW2, SUPP)
Store (CDW3, CTRL)
And (CTRL, 0x1D, CTRL)
And (CTRL, 0xFB, CTRL)
If (Not (And (CDW1, One)))
{
If (And (CTRL, One)) {}
If (And (CTRL, 0x10)) {}
}
If (LNotEqual (Arg1, One))
{
Or (CDW1, 0x08, CDW1)
}
If (LNotEqual (CDW3, CTRL))
{
Or (CDW1, 0x10, CDW1)
}
Store (CTRL, CDW3)
Return (Arg3)
}
Else
{
Or (CDW1, 0x04, CDW1)
Return (Arg3)
}
}
Method (TOM, 0, NotSerialized)
{
Multiply (TOML, 0x00010000, Local0)
Multiply (TOMH, 0x01000000, Local1)
Add (Local0, Local1, Local0)
Return (Local0)
}
Name (CRES, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, SubDecode,
0x0000, // Granularity
0x0000, // Range Minimum
0x00FF, // Range Maximum
0x0000, // Translation Offset
0x0100, // Length
0x00,, )
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0000, // Range Minimum
0x0CF7, // Range Maximum
0x0000, // Translation Offset
0x0CF8, // Length
0x00,, , TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0D00, // Range Minimum
0xFFFF, // Range Maximum
0x0000, // Translation Offset
0xF300, // Length
,, , TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000A0000, // Range Minimum
0x000BFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00020000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadOnly,
0x00000000, // Granularity
0x000C0000, // Range Minimum
0x000C3FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadOnly,
0x00000000, // Granularity
0x000C4000, // Range Minimum
0x000C7FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadOnly,
0x00000000, // Granularity
0x000C8000, // Range Minimum
0x000CBFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadOnly,
0x00000000, // Granularity
0x000CC000, // Range Minimum
0x000CFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000D0000, // Range Minimum
0x000D3FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000D4000, // Range Minimum
0x000D7FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000D8000, // Range Minimum
0x000DBFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000DC000, // Range Minimum
0x000DFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000E0000, // Range Minimum
0x000E3FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000E4000, // Range Minimum
0x000E7FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000E8000, // Range Minimum
0x000EBFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000EC000, // Range Minimum
0x000EFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x80000000, // Range Minimum
0xF7FFFFFF, // Range Maximum
0x00000000, // Translation Offset
0x78000000, // Length
0x00,, _Y00, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0xFC000000, // Range Minimum
0xFED3FFFF, // Range Maximum
0x00000000, // Translation Offset
0x02D40000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0xFED45000, // Range Minimum
0xFFFFFFFF, // Range Maximum
0x00000000, // Translation Offset
0x012BB000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
IO (Decode16,
0x0CF8, // Range Minimum
0x0CF8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CreateDWordField (CRES, \_SB.PCI0._Y00._MIN, BTMN) // _MIN: Minimum Base Address
CreateDWordField (CRES, \_SB.PCI0._Y00._MAX, BTMX) // _MAX: Maximum Base Address
CreateDWordField (CRES, \_SB.PCI0._Y00._LEN, BTLN) // _LEN: Length
Store (TOM (), BTMN)
Subtract (0xF8000000, BTMN, BTLN)
Return (CRES)
}
Device (MEMR)
{
Name (_HID, EisaId ("PNP0C02")) // _HID: Hardware ID
Name (MEM1, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00000000, // Address Length
_Y01)
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00000000, // Address Length
_Y02)
Memory32Fixed (ReadWrite,
0xF8000000, // Address Base
0x04000000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFED80000, // Address Base
0x00001000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFED40000, // Address Base
0x00005000, // Address Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y01._BAS, MB01) // _BAS: Base Address
CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y01._LEN, ML01) // _LEN: Length
CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y02._BAS, MB02) // _BAS: Base Address
CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y02._LEN, ML02) // _LEN: Length
If (GPIC)
{
Store (0xFEC00000, MB01)
Store (0xFEE00000, MB02)
Store (0x1000, ML01)
Store (0x1000, ML02)
}
Return (MEM1)
}
}
Method (XCMP, 2, NotSerialized)
{
If (LNotEqual (0x10, SizeOf (Arg0)))
{
Return (Zero)
}
If (LNotEqual (0x10, SizeOf (Arg1)))
{
Return (Zero)
}
Store (Zero, Local0)
While (LLess (Local0, 0x10))
{
If (LNotEqual (DerefOf (Index (Arg0, Local0)), DerefOf (Index (
Arg1, Local0))))
{
Return (Zero)
}
Increment (Local0)
}
Return (One)
}
Method (AFN0, 0, Serialized)
{
If (LEqual (PDDN, One))
{
^VGA.AFN0 ()
}
If (LEqual (PDDN, 0x02))
{
^PB2.VGA.AFN0 ()
}
If (LEqual (PDDN, 0x03))
{
^PB3.VGA.AFN0 ()
}
}
Method (AFN1, 1, Serialized)
{
}
Method (AFN2, 2, Serialized)
{
}
Method (AFN3, 2, Serialized)
{
If (LEqual (PDDN, One))
{
^VGA.AFN3 (Arg0, Arg1)
}
If (LEqual (PDDN, 0x02))
{
^PB2.VGA.AFN3 (Arg0, Arg1)
}
If (LEqual (PDDN, 0x03))
{
^PB3.VGA.AFN3 (Arg0, Arg1)
}
}
Method (AFN4, 1, Serialized)
{
If (LEqual (PDDN, One))
{
^VGA.AFN4 (Arg0)
}
If (LEqual (PDDN, 0x02))
{
^PB2.VGA.AFN4 (Arg0)
}
If (LEqual (PDDN, 0x03))
{
^PB3.VGA.AFN4 (Arg0)
}
}
Method (AFN5, 0, Serialized)
{
If (LEqual (PDDN, One))
{
^VGA.AFN5 ()
}
If (LEqual (PDDN, 0x02))
{
^PB2.VGA.AFN5 ()
}
If (LEqual (PDDN, 0x03))
{
^PB3.VGA.AFN5 ()
}
}
Method (AFN6, 0, Serialized)
{
If (LEqual (PDDN, One))
{
^VGA.AFN6 ()
}
If (LEqual (PDDN, 0x02))
{
^PB2.VGA.AFN6 ()
}
If (LEqual (PDDN, 0x03))
{
^PB3.VGA.AFN6 ()
}
}
Device (CPF3)
{
Name (_ADR, 0x00180003) // _ADR: Address
OperationRegion (PCIC, PCI_Config, Zero, 0xFF)
Field (PCIC, ByteAcc, NoLock, Preserve)
{
Offset (0xDC),
Offset (0xDD),
PSNM, 3,
Offset (0xE8),
, 9,
SVMC, 1,
, 2,
CORN, 2
}
}
Name (PR00, Package (0x29)
{
Package (0x04)
{
0x0010FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0010FFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0x0011FFFF,
Zero,
LNKD,
Zero
},
Package (0x04)
{
0x0012FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0012FFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0x0013FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0013FFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0x0014FFFF,
Zero,
LNKA,
Zero
},
Package (0x04)
{
0x0014FFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0x0014FFFF,
0x02,
LNKC,
Zero
},
Package (0x04)
{
0x0014FFFF,
0x03,
LNKD,
Zero
},
Package (0x04)
{
0x0015FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0015FFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0x0015FFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0x0015FFFF,
0x03,
LNKB,
Zero
},
Package (0x04)
{
0x0016FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0016FFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0x0001FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0001FFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0x0001FFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0x0001FFFF,
0x03,
LNKB,
Zero
},
Package (0x04)
{
0x0002FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0002FFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0x0002FFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0x0002FFFF,
0x03,
LNKB,
Zero
},
Package (0x04)
{
0x0004FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0004FFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0x0004FFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0x0004FFFF,
0x03,
LNKB,
Zero
},
Package (0x04)
{
0x0005FFFF,
Zero,
LNKB,
Zero
},
Package (0x04)
{
0x0005FFFF,
One,
LNKC,
Zero
},
Package (0x04)
{
0x0005FFFF,
0x02,
LNKD,
Zero
},
Package (0x04)
{
0x0005FFFF,
0x03,
LNKA,
Zero
},
Package (0x04)
{
0x0006FFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x0006FFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0x0006FFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0x0006FFFF,
0x03,
LNKB,
Zero
},
Package (0x04)
{
0x0007FFFF,
Zero,
LNKD,
Zero
},
Package (0x04)
{
0x0007FFFF,
One,
LNKA,
Zero
},
Package (0x04)
{
0x0007FFFF,
0x02,
LNKB,
Zero
},
Package (0x04)
{
0x0007FFFF,
0x03,
LNKC,
Zero
}
})
Name (AR00, Package (0x29)
{
Package (0x04)
{
0x0010FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0010FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0011FFFF,
Zero,
Zero,
0x13
},
Package (0x04)
{
0x0012FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0012FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0013FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0013FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0014FFFF,
Zero,
Zero,
0x10
},
Package (0x04)
{
0x0014FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0014FFFF,
0x02,
Zero,
0x12
},
Package (0x04)
{
0x0014FFFF,
0x03,
Zero,
0x13
},
Package (0x04)
{
0x0015FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0015FFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0x0015FFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0x0015FFFF,
0x03,
Zero,
0x11
},
Package (0x04)
{
0x0016FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0016FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x0001FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0001FFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0x0001FFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0x0001FFFF,
0x03,
Zero,
0x11
},
Package (0x04)
{
0x0002FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0002FFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0x0002FFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0x0002FFFF,
0x03,
Zero,
0x11
},
Package (0x04)
{
0x0004FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0004FFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0x0004FFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0x0004FFFF,
0x03,
Zero,
0x11
},
Package (0x04)
{
0x0005FFFF,
Zero,
Zero,
0x11
},
Package (0x04)
{
0x0005FFFF,
One,
Zero,
0x12
},
Package (0x04)
{
0x0005FFFF,
0x02,
Zero,
0x13
},
Package (0x04)
{
0x0005FFFF,
0x03,
Zero,
0x10
},
Package (0x04)
{
0x0006FFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x0006FFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0x0006FFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0x0006FFFF,
0x03,
Zero,
0x11
},
Package (0x04)
{
0x0007FFFF,
Zero,
Zero,
0x13
},
Package (0x04)
{
0x0007FFFF,
One,
Zero,
0x10
},
Package (0x04)
{
0x0007FFFF,
0x02,
Zero,
0x11
},
Package (0x04)
{
0x0007FFFF,
0x03,
Zero,
0x12
}
})
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (AR00)
}
Return (PR00)
}
Device (VGA)
{
Name (_ADR, 0x00010000) // _ADR: Address
Name (PXEN, 0x80000001)
Name (PXID, 0x00020000)
Name (PXMX, 0x80000001)
Name (PXFX, 0x80000000)
Name (PXDY, 0x80000001)
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
Name (DOSA, Zero)
Name (SWIT, One)
Name (CRTA, One)
Name (LCDA, One)
Name (HDMA, One)
Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching
{
Store (Arg0, DOSA)
}
Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices
{
Name (DODL, Package (0x03)
{
0x00010100,
0x00010110,
0x00010210
})
Return (DODL)
}
Device (LCD)
{
Name (_ADR, 0x0110) // _ADR: Address
Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
{
Store ("LCD -- _DCS", Debug)
If (LCDA)
{
Return (0x1F)
}
Else
{
Return (0x1D)
}
}
Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
{
Store ("LCD -- _DCS", Debug)
If (LCDA)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
Store ("LCD -- _DSS", Debug)
}
Name (BRTB, Package (0x0D)
{
0x64,
0x32,
Zero,
0x0A,
0x14,
0x1E,
0x28,
0x32,
0x3C,
0x46,
0x50,
0x5A,
0x64
})
Name (AU15, Package (0x0B)
{
0x07,
0x09,
0x0D,
0x11,
0x16,
0x1D,
0x25,
0x2F,
0x3C,
0x4E,
0x64
})
Name (CM15, Package (0x0B)
{
0x07,
0x09,
0x0D,
0x11,
0x16,
0x1D,
0x25,
0x2F,
0x3C,
0x4E,
0x64
})
Name (DEFT, Package (0x0B)
{
0x06,
0x08,
0x0B,
0x0E,
0x13,
0x19,
0x21,
0x2A,
0x36,
0x45,
0x64
})
Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels
{
Return (BRTB)
}
Name (BQCL, 0x06)
Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method
{
Store (Zero, BRLS)
Store (0x55, BCMF)
Store (Arg0, BCMV)
If (LAnd (LGreaterEqual (Arg0, Zero), LLessEqual (Arg0, 0x64)))
{
Store (Arg0, Local0)
Store (Arg0, BQCL)
Divide (Arg0, 0x0A, Local2, Local1)
Store (DerefOf (Index (DEFT, Local1)), Local0)
If (LEqual (LCDD, 0x22ECAF06))
{
Store (DerefOf (Index (AU15, Local1)), Local0)
}
If (LEqual (LCDD, 0x15A2AF0D))
{
Store (DerefOf (Index (CM15, Local1)), Local0)
}
}
If (^^^LPC0.EC.ADP)
{
Store (Local1, ^^^LPC0.EC.LCBA)
}
Else
{
Store (Local1, ^^^LPC0.EC.LCBD)
}
Acquire (^^^LPC0.PSMX, 0xFFFF)
Store (Local0, BRTL)
Store (0x72, BCMD)
BSMI (Zero)
Release (^^^LPC0.PSMX)
}
Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current
{
Store (BQCL, Local0)
Return (Local0)
}
Method (BRAJ, 0, NotSerialized)
{
If (^^^LPC0.EC.BRUP)
{
If (LLess (BCMV, 0x64))
{
Add (BCMV, 0x0A, Local0)
_BCM (Local0)
}
}
If (^^^LPC0.EC.BRDN)
{
If (LGreater (BCMV, Zero))
{
Subtract (BCMV, 0x0A, Local0)
_BCM (Local0)
}
}
Store (One, BRLS)
}
}
Device (CRT)
{
Name (_ADR, 0x0100) // _ADR: Address
Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
{
Store ("CRT _DCS Debug", Debug)
If (CRTA)
{
Return (0x1F)
}
Else
{
Return (0x1D)
}
}
Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
{
Store ("CRT _DGS Debug", Debug)
If (CRTA)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
Store ("CRT _DSS Debug", Debug)
}
}
Device (HDMI)
{
Name (_ADR, 0x0210) // _ADR: Address
Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
{
Store ("HDMI _DCS Debug", Debug)
If (HDMA)
{
Return (0x1F)
}
Else
{
Return (0x1D)
}
}
Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
{
Store ("HDMI _DGS Debug", Debug)
If (HDMA)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
Store ("HDMI _DSS Debug", Debug)
}
}
Name (ATIB, Buffer (0x0100) {})
Method (ATIF, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
Return (AF00 ())
}
If (LEqual (Arg0, One))
{
Return (AF01 ())
}
If (LEqual (Arg0, 0x02))
{
Return (AF02 ())
}
If (LEqual (Arg0, 0x03))
{
Return (AF03 (DerefOf (Index (Arg1, 0x02)), DerefOf (Index (Arg1,
0x04))))
}
If (LEqual (Arg0, 0x0F))
{
Return (AF15 ())
}
Else
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, VERN)
CreateDWordField (ATIB, 0x04, NMSK)
CreateDWordField (ATIB, 0x08, SFUN)
Store (Zero, SSZE)
Store (Zero, VERN)
Store (Zero, NMSK)
Store (Zero, SFUN)
Return (ATIB)
}
}
Method (AF00, 0, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, VERN)
CreateDWordField (ATIB, 0x04, NMSK)
CreateDWordField (ATIB, 0x08, SFUN)
Store (0x0C, SSZE)
Store (One, VERN)
If (LEqual (PXEN, 0x80000000))
{
Store (0x11, NMSK)
}
Else
{
Store (0x51, NMSK)
}
Store (NMSK, MSKN)
Store (0x4007, SFUN)
Return (ATIB)
}
Method (AF01, 0, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateDWordField (ATIB, 0x02, VMSK)
CreateDWordField (ATIB, 0x06, FLGS)
Store (0x0A, SSZE)
Store (0x0B, VMSK)
Store (0x0A, SSZE)
Store (0x0B, FLGS)
Return (ATIB)
}
Name (PSBR, Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
})
Name (MSKN, Zero)
Name (SEXM, Zero)
Name (STHG, Zero)
Name (STHI, Zero)
Name (SFPG, Zero)
Name (SFPI, Zero)
Name (SSPS, Zero)
Name (SSDM, 0x0A)
Name (SCDY, Zero)
Name (SACT, Buffer (0x07)
{
0x01, 0x02, 0x08, 0x80, 0x03, 0x09, 0x81
})
Method (AF02, 0, NotSerialized)
{
CreateBitField (PSBR, Zero, PDSW)
CreateBitField (PSBR, One, PEXM)
CreateBitField (PSBR, 0x02, PTHR)
CreateBitField (PSBR, 0x03, PFPS)
CreateBitField (PSBR, 0x04, PSPS)
CreateBitField (PSBR, 0x05, PDCC)
CreateBitField (PSBR, 0x06, PXPS)
CreateWordField (ATIB, Zero, SSZE)
CreateDWordField (ATIB, 0x02, PSBI)
CreateByteField (ATIB, 0x06, EXPM)
CreateByteField (ATIB, 0x07, THRM)
CreateByteField (ATIB, 0x08, THID)
CreateByteField (ATIB, 0x09, FPWR)
CreateByteField (ATIB, 0x0A, FPID)
CreateByteField (ATIB, 0x0B, SPWR)
Store (0x0C, SSZE)
Store (PSBR, PSBI)
If (PDSW)
{
Store (Zero, PDSW)
}
If (PEXM)
{
Store (SEXM, EXPM)
Store (Zero, SEXM)
Store (Zero, PEXM)
}
If (PTHR)
{
Store (STHG, THRM)
Store (STHI, THID)
Store (Zero, STHG)
Store (Zero, STHI)
Store (Zero, PTHR)
}
If (PFPS)
{
Store (SFPG, FPWR)
Store (SFPI, FPWR)
Store (Zero, SFPG)
Store (Zero, SFPI)
Store (Zero, PFPS)
}
If (PSPS)
{
Store (SSPS, SPWR)
Store (Zero, PSPS)
}
If (PXPS)
{
Store (Zero, PXPS)
}
Return (ATIB)
}
Method (AF03, 2, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, SSDP)
CreateWordField (ATIB, 0x04, SCDP)
Store (Arg0, SSDP)
Store (Arg1, SCDP)
Name (NXTD, 0x06)
Name (CIDX, 0x06)
Store (SSDP, Local1)
And (Local1, 0x8B, Local1)
Store (SCDP, Local2)
If (CondRefOf (^^^LID._LID, Local4))
{
And (Local2, 0xFFFFFFFE, Local2)
Or (Local2, ^^^LID._LID (), Local2)
}
Else
{
Or (Local2, One, Local2)
}
Store (Local2, P80H)
Store (Zero, Local0)
While (LLess (Local0, SizeOf (SACT)))
{
Store (DerefOf (Index (SACT, Local0)), Local3)
If (LEqual (Local3, Local1))
{
Store (Local0, CIDX)
Store (SizeOf (SACT), Local0)
}
Else
{
Increment (Local0)
}
}
Store (CIDX, Local0)
While (LLess (Local0, SizeOf (SACT)))
{
Increment (Local0)
If (LEqual (Local0, SizeOf (SACT)))
{
Store (Zero, Local0)
}
Store (DerefOf (Index (SACT, Local0)), Local3)
If (LEqual (And (Local3, Local2), Local3))
{
Store (Local0, NXTD)
Store (SizeOf (SACT), Local0)
}
}
If (LEqual (NXTD, SizeOf (SACT)))
{
Store (Zero, SSDP)
}
Else
{
Store (NXTD, Local0)
Store (DerefOf (Index (SACT, Local0)), Local3)
And (SSDP, 0xFFFFFFF4, SSDP)
Or (SSDP, Local3, SSDP)
}
Store (0x04, SSZE)
Store (SSDP, P80H)
Return (ATIB)
}
Method (AFN0, 0, Serialized)
{
If (And (MSKN, One))
{
CreateBitField (PSBR, Zero, PDSW)
Store (One, PDSW)
Notify (VGA, 0x81)
}
}
Method (AFN3, 2, Serialized)
{
If (And (MSKN, 0x08))
{
Store (Arg0, Local0)
Store (Local0, SFPI)
Store (Arg1, Local0)
Store (And (Local0, 0x03, Local0), SFPG)
CreateBitField (PSBR, 0x03, PFPS)
Store (One, PFPS)
Notify (VGA, 0x81)
}
}
Method (AFN4, 1, Serialized)
{
If (And (MSKN, 0x10))
{
Store (Arg0, Local0)
Store (SSPS, Local1)
Store (Local0, SSPS)
If (LEqual (Local0, Local1)) {}
Else
{
CreateBitField (PSBR, 0x04, PSPS)
Store (One, PSPS)
Notify (VGA, 0x81)
}
}
}
Method (AFN5, 0, Serialized)
{
If (And (MSKN, 0x20))
{
CreateBitField (PSBR, 0x05, PDCC)
Store (One, PDCC)
Notify (VGA, 0x81)
}
}
Method (AFN6, 0, Serialized)
{
If (And (MSKN, 0x40))
{
CreateBitField (PSBR, 0x06, PXPS)
Store (One, PXPS)
Notify (VGA, 0x81)
}
}
Method (AF15, 0, NotSerialized)
{
Store (0xFF, P80H)
CreateWordField (ATIB, 0x02, DSZE)
Store (0x08, DSZE)
Acquire (^^LPC0.PSMX, 0xFFFF)
Store (0x8D, BCMD)
Store (0x0F, DID)
Store (ATIB, INFO)
BSMI (Zero)
Store (INFO, ATIB)
Release (^^LPC0.PSMX)
Return (ATIB)
}
Scope (\_SB.PCI0.VGA)
{
OperationRegion (REVD, SystemMemory, 0xAFC85018, 0x0000FA04)
Field (REVD, AnyAcc, NoLock, Preserve)
{
SROM, 32,
VROM, 512000
}
Name (TVGA, Buffer (0xFA00)
{
0x00
})
Method (ATRM, 2, Serialized)
{
Add (Arg0, Arg1, Local0)
If (LLessEqual (Local0, SROM))
{
Multiply (Arg1, 0x08, Local1)
Multiply (Arg0, 0x08, Local2)
Store (VROM, TVGA)
CreateField (TVGA, Local2, Local1, TEMP)
Name (RETB, Buffer (Arg1) {})
Store (TEMP, RETB)
Return (RETB)
}
Else
{
If (LLess (Arg0, SROM))
{
Subtract (SROM, Arg0, Local3)
Multiply (Local3, 0x08, Local1)
Multiply (Arg0, 0x08, Local2)
Store (VROM, TVGA)
CreateField (TVGA, Local2, Local1, TEM)
Name (RETC, Buffer (Local3) {})
Store (TEM, RETC)
Return (RETC)
}
Else
{
Name (RETD, Buffer (One) {})
Return (RETD)
}
}
}
}
Scope (\_SB.PCI0.VGA)
{
Name (ATPB, Buffer (0x0100) {})
Name (DSID, Ones)
Name (HSID, Ones)
Name (CNT0, Buffer (0x05)
{
0x05, 0x00, 0x00, 0x10, 0x01
})
Name (CNT1, Buffer (0x05)
{
0x05, 0x01, 0x00, 0x00, 0x01
})
Name (CNT2, Buffer (0x05)
{
0x07, 0x03, 0x00, 0x10, 0x02
})
Name (CNT3, Buffer (0x05)
{
0x07, 0x07, 0x00, 0x20, 0x02
})
Name (CNT4, Buffer (0x05)
{
0x00, 0x09, 0x00, 0x30, 0x02
})
Name (CNT5, Buffer (0x05)
{
0x01, 0x00, 0x01, 0x10, 0x01
})
Name (CNT6, Buffer (0x05)
{
0x01, 0x01, 0x01, 0x00, 0x01
})
Name (CNT7, Buffer (0x05)
{
0x03, 0x03, 0x01, 0x10, 0x02
})
Name (CNT8, Buffer (0x05)
{
0x03, 0x07, 0x01, 0x20, 0x02
})
Name (CNT9, Buffer (0x05)
{
0x00, 0x09, 0x01, 0x30, 0x02
})
Method (ATPX, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
Return (PX00 ())
}
If (LEqual (Arg0, One))
{
Return (PX01 ())
}
If (LEqual (Arg0, 0x02))
{
PX02 (DerefOf (Index (Arg1, 0x02)))
Return (ATPB)
}
If (LEqual (Arg0, 0x03))
{
PX03 (DerefOf (Index (Arg1, 0x02)))
Return (ATPB)
}
If (LEqual (Arg0, 0x04))
{
PX04 (DerefOf (Index (Arg1, 0x02)))
Return (ATPB)
}
If (LEqual (Arg0, 0x08))
{
Return (PX08 ())
}
If (LEqual (Arg0, 0x09))
{
Return (PX09 ())
}
CreateWordField (ATPB, Zero, SSZE)
CreateWordField (ATPB, 0x02, VERN)
CreateDWordField (ATPB, 0x04, SFUN)
Store (Zero, SSZE)
Store (Zero, VERN)
Store (Zero, SFUN)
Return (ATPB)
}
Method (PX00, 0, NotSerialized)
{
Store (0xE0, P80H)
CreateWordField (ATPB, Zero, SSZE)
CreateWordField (ATPB, 0x02, VERN)
CreateDWordField (ATPB, 0x04, SFUN)
Store (0x08, SSZE)
Store (One, VERN)
If (LEqual (PXEN, 0x80000000))
{
Store (Zero, SFUN)
Return (ATPB)
}
If (LEqual (PXMX, 0x80000000))
{
Store (0x018F, SFUN)
}
Else
{
Store (0x0183, SFUN)
}
If (LEqual (PXDY, 0x80000001))
{
And (SFUN, 0xFFFFFFFD, SFUN)
}
If (LAnd (LEqual (PXDY, 0x80000001), LEqual (PXFX, 0x80000001)))
{
Or (SFUN, 0x02, SFUN)
}
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.VGA.SVID, Local0)
Store (^^PB2.HDAU.SVID, Local1)
}
Else
{
Store (^^PB3.VGA.SVID, Local0)
Store (^^PB3.HDAU.SVID, Local1)
}
If (LNotEqual (Local0, Ones))
{
Store (Local0, DSID)
}
If (LNotEqual (Local1, Ones))
{
Store (Local1, HSID)
}
Return (ATPB)
}
Method (PX01, 0, NotSerialized)
{
Store (0xE1, P80H)
CreateWordField (ATPB, Zero, SSZE)
CreateDWordField (ATPB, 0x02, VMSK)
CreateDWordField (ATPB, 0x06, FLGS)
Store (0x0A, SSZE)
Store (0xFF, VMSK)
If (LEqual (PXMX, 0x80000000))
{
Store (0x4B, FLGS)
}
Else
{
Store (Zero, FLGS)
If (LEqual (PXDY, 0x80000001))
{
Or (FLGS, 0x80, FLGS)
}
}
Return (ATPB)
}
Method (PX02, 1, NotSerialized)
{
CreateWordField (ATPB, Zero, SSZE)
CreateByteField (ATPB, 0x02, PWST)
Store (0x03, SSZE)
Store (Buffer (0x05) {}, Local7)
CreateWordField (Local7, Zero, SZZE)
CreateField (Local7, 0x10, 0x03, FUCC)
CreateField (Local7, 0x13, 0x05, DEVV)
CreateByteField (Local7, 0x03, BUSS)
CreateByteField (Local7, 0x04, HPST)
Store (0x05, SZZE)
Store (Zero, BUSS)
Store (Zero, FUCC)
Store (Buffer (0x04) {}, Local6)
CreateByteField (Local6, 0x02, HPOX)
And (Arg0, One, PWST)
Name (HPOK, Zero)
If (PWST)
{
Store (0x11E2, P80H)
Store (Zero, ^^SMBS.O044)
Store (Zero, ^^SMBS.E044)
Store (Zero, ^^SMBS.O045)
Store (Zero, ^^SMBS.E045)
Sleep (0x0A)
Store (One, ^^SMBS.O045)
Store (Zero, ^^SMBS.E045)
Sleep (0x0A)
Sleep (0x0A)
Store (One, ^^SMBS.MX32)
Store (One, ^^SMBS.MX33)
While (LEqual (^^SMBS.I032, Zero)) {}
While (LEqual (^^SMBS.I033, Zero)) {}
Store (One, ^^SMBS.O044)
Store (Zero, ^^SMBS.E044)
Store (0x12E2, P80H)
Store (Zero, HPOK)
Sleep (0x64)
Sleep (0x64)
If (LEqual (PXID, ^^PB2._ADR))
{
Store (0x02, DEVV)
}
Else
{
Store (0x03, DEVV)
}
Store (One, HPST)
Store (ALIB (0x06, Local7), Local6)
Sleep (0x14)
Store (Zero, Local2)
While (LLess (Local2, 0x0F))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (One, ^^PB2.PDC2)
}
Else
{
Store (One, ^^PB3.PDC2)
}
Store (One, Local4)
Store (0xC8, Local5)
While (LAnd (Local4, Local5))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.XPRD (0xA5), Local0)
}
Else
{
Store (^^PB3.XPRD (0xA5), Local0)
}
And (Local0, 0x7F, Local0)
If (LAnd (LGreaterEqual (Local0, 0x10), LNotEqual (Local0, 0x7F)))
{
Store (Zero, Local4)
}
Else
{
Sleep (0x05)
Decrement (Local5)
}
}
If (LNot (Local4))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.XPDL (), Local5)
}
Else
{
Store (^^PB3.XPDL (), Local5)
}
If (Local5)
{
If (LEqual (PXID, ^^PB2._ADR))
{
^^PB2.XPRT ()
}
Else
{
^^PB3.XPRT ()
}
Sleep (0x05)
Increment (Local2)
}
Else
{
Store (Zero, Local0)
If (LEqual (PXID, ^^PB2._ADR))
{
If (LEqual (^^PB2.XPR2 (), Ones))
{
Store (One, Local0)
}
}
Else
{
If (LEqual (^^PB3.XPR2 (), Ones))
{
Store (One, Local0)
}
}
If (Local0)
{
Store (One, HPOK)
Store (0x10, Local2)
}
Else
{
Store (Zero, HPOK)
Store (0x10, Local2)
}
}
}
Else
{
Store (0x10, Local2)
}
}
If (LNot (HPOK))
{
Store (0x13E2, P80H)
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.VGA.DVID, Local1)
}
Else
{
Store (^^PB3.VGA.DVID, Local1)
}
Sleep (0x0A)
Store (One, Local4)
Store (0x05, Local5)
While (LAnd (Local4, Local5))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.XPRD (0xA5), Local0)
}
Else
{
Store (^^PB3.XPRD (0xA5), Local0)
}
And (Local0, 0x7F, Local0)
If (LLessEqual (Local0, 0x04))
{
Store (Zero, Local4)
}
Else
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.VGA.DVID, Local1)
}
Else
{
Store (^^PB3.VGA.DVID, Local1)
}
Sleep (0x05)
Decrement (Local5)
}
}
If (LEqual (PXID, ^^PB2._ADR))
{
Store (0x02, DEVV)
}
Else
{
Store (0x03, DEVV)
}
Store (Zero, HPST)
ALIB (0x06, Local7)
}
Store (0x14E2, P80H)
}
Else
{
Store (0x02E2, P80H)
If (LEqual (PXID, ^^PB2._ADR))
{
Store (0x10, MUXF)
}
Else
{
Store (0x18, MUXF)
}
Store (Zero, ^^SMBS.O044)
Store (Zero, ^^SMBS.E044)
Sleep (0x0A)
Store (Zero, ^^SMBS.O045)
Store (Zero, ^^SMBS.E045)
Store (0x03E2, P80H)
If (LEqual (PXID, ^^PB2._ADR))
{
Store (One, ^^PB2.PDC2)
Store (^^PB2.VGA.DVID, Local1)
}
Else
{
Store (One, ^^PB3.PDC2)
Store (^^PB3.VGA.DVID, Local1)
}
Sleep (0x0A)
Store (One, Local4)
Store (0x05, Local5)
While (LAnd (Local4, Local5))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.XPRD (0xA5), Local0)
}
Else
{
Store (^^PB3.XPRD (0xA5), Local0)
}
And (Local0, 0x7F, Local0)
If (LLessEqual (Local0, 0x04))
{
Store (Zero, Local4)
}
Else
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (^^PB2.VGA.DVID, Local1)
}
Else
{
Store (^^PB3.VGA.DVID, Local1)
}
Sleep (0x05)
Decrement (Local5)
}
}
If (LEqual (PXID, ^^PB2._ADR))
{
Store (0x02, DEVV)
}
Else
{
Store (0x03, DEVV)
}
Store (Zero, HPST)
ALIB (0x06, Local7)
Store (0x02, HPOK)
Store (0x04E2, P80H)
}
If (HPOK)
{
If (LAnd (LEqual (HPOK, One), LNotEqual (DSID, Ones)))
{
Store (DSID, Local1)
If (LEqual (PXID, ^^PB2._ADR))
{
Store (Local1, ^^PB2.VGA.SMID)
}
Else
{
Store (Local1, ^^PB3.VGA.SMID)
}
Sleep (0x0A)
Store (HSID, Local1)
If (LNotEqual (Local1, Ones))
{
If (LEqual (PXID, ^^PB2._ADR))
{
Store (Local1, ^^PB2.HDAU.SMID)
}
Else
{
Store (Local1, ^^PB3.HDAU.SMID)
}
}
Sleep (0x0A)
}
If (LEqual (PXID, ^^PB2._ADR))
{
Notify (PB2, Zero)
}
Else
{
Notify (PB3, Zero)
}
}
}
Method (PX03, 1, NotSerialized)
{
CreateWordField (ATPB, Zero, SSZE)
CreateWordField (ATPB, 0x02, DPSW)
Store (0x04, SSZE)
And (Arg0, One, DPSW)
}
Method (PX04, 1, NotSerialized)
{
Store (0xE4, P80H)
CreateWordField (ATPB, Zero, SSZE)
CreateWordField (ATPB, 0x02, ICSW)
Store (0x04, SSZE)
And (Arg0, One, ICSW)
}
Method (PX08, 0, NotSerialized)
{
Store (0xE8, P80H)
CreateWordField (ATPB, Zero, CNUM)
CreateWordField (ATPB, 0x02, CSSZ)
Store (0x0A, CNUM)
Store (0x05, CSSZ)
CreateField (ATPB, 0x20, 0x28, CTI0)
Store (CNT0, CTI0)
CreateField (ATPB, 0x48, 0x28, CTI1)
Store (CNT1, CTI1)
CreateField (ATPB, 0x70, 0x28, CTI2)
CreateByteField (CNT2, Zero, FLG2)
If (LEqual (LPTY, One))
{
If (LEqual (M92D, One))
{
Store (Zero, FLG2)
}
If (LEqual (M92D, 0x02))
{
Store (0x07, FLG2)
}
}
Store (CNT2, CTI2)
CreateField (ATPB, 0x98, 0x28, CTI3)
CreateByteField (CNT3, Zero, FLG3)
If (LEqual (LPTY, Zero))
{
Store (0x07, FLG3)
}
If (LEqual (LPTY, One))
{
Store (Zero, FLG3)
}
If (LEqual (LPTY, 0x02))
{
Store (Zero, FLG3)
}
If (LEqual (M92D, 0x02))
{
Store (0x07, FLG3)
}
Store (CNT3, CTI3)
CreateField (ATPB, 0xC0, 0x28, CTI4)
Store (CNT4, CTI4)
CreateField (ATPB, 0xE8, 0x28, CTI5)
Store (CNT5, CTI5)
CreateField (ATPB, 0x0110, 0x28, CTI6)
Store (CNT6, CTI6)
CreateField (ATPB, 0x0138, 0x28, CTI7)
CreateByteField (CNT7, Zero, FLG7)
If (LEqual (LPTY, One))
{
If (LEqual (M92D, One))
{
Store (Zero, FLG7)
}
If (LEqual (M92D, 0x02))
{
Store (Zero, FLG7)
}
}
Store (CNT7, CTI7)
CreateField (ATPB, 0x0160, 0x28, CTI8)
CreateByteField (CNT8, Zero, FLG8)
If (LEqual (LPTY, Zero))
{
Store (0x07, FLG8)
}
If (LEqual (LPTY, One))
{
Store (Zero, FLG8)
}
If (LEqual (LPTY, 0x02))
{
Store (Zero, FLG8)
}
If (LEqual (M92D, 0x02))
{
Store (0x07, FLG8)
}
Store (CNT8, CTI8)
CreateField (ATPB, 0x0188, 0x28, CTI9)
CreateByteField (CNT9, Zero, FLG9)
If (LEqual (M92D, 0x02))
{
Store (0x07, FLG9)
}
Store (CNT9, CTI9)
Return (ATPB)
}
Method (PX09, 0, NotSerialized)
{
Store (0xE9, P80H)
CreateWordField (ATPB, Zero, CNUM)
CreateWordField (ATPB, 0x02, CSSZ)
Store (Zero, CNUM)
Store (Zero, CSSZ)
CreateByteField (ATPB, 0x04, ATI0)
CreateByteField (ATPB, 0x05, HPD0)
CreateByteField (ATPB, 0x06, DDC0)
Store (Zero, ATI0)
Store (Zero, HPD0)
Store (Zero, DDC0)
CreateByteField (ATPB, 0x07, ATI1)
CreateByteField (ATPB, 0x08, HPD1)
CreateByteField (ATPB, 0x09, DDC1)
Store (Zero, ATI1)
Store (Zero, HPD1)
Store (Zero, DDC1)
Return (ATPB)
}
}
Name (AT00, Buffer (0xFF) {})
Name (AT01, Buffer (0x03) {})
Method (ATCS, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
ATC0 ()
}
If (LEqual (Arg0, One))
{
ATC1 ()
}
If (LEqual (Arg0, 0x02))
{
ATC2 (Arg1)
}
If (LEqual (Arg0, 0x03))
{
ATC3 ()
}
If (LEqual (Arg0, 0x04))
{
ATC4 (Arg1)
}
Return (AT00)
}
Method (ATC0, 0, NotSerialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateWordField (AT00, 0x02, INTF)
CreateDWordField (AT00, 0x04, SUPP)
Store (0x08, SZZE)
Store (One, INTF)
Store (0x0F, SUPP)
}
Method (ATC1, 0, Serialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateDWordField (AT00, 0x02, VFMK)
CreateDWordField (AT00, 0x06, FLAG)
CreateField (AT00, 0x30, One, DOCK)
Store (0x0A, SZZE)
Store (One, VFMK)
Store (Zero, FLAG)
Store (One, DOCK)
}
Method (ATC2, 1, Serialized)
{
CreateField (Arg0, 0x10, 0x03, FUCC)
CreateField (Arg0, 0x13, 0x06, DEVV)
CreateByteField (Arg0, 0x03, BUSS)
CreateDWordField (Arg0, 0x04, VFMK)
CreateDWordField (Arg0, 0x06, FLAG)
CreateField (Arg0, 0x30, One, ADVC)
CreateField (Arg0, 0x31, One, WFCM)
CreateByteField (Arg0, 0x08, RQST)
CreateByteField (Arg0, 0x09, PFRQ)
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, RETV)
Store (0x03, SZZE)
Store (One, RETV)
Store (ALIB (0x02, Arg0), AT00)
}
Method (ATC3, 0, Serialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, RETV)
CreateWordField (AT01, Zero, SZZB)
CreateByteField (AT01, 0x02, PSPP)
Store (0x03, SZZE)
Store (One, RETV)
Store (0x03, SZZB)
Store (One, PSPP)
Store (ALIB (0x03, AT01), AT00)
}
Method (ATC4, 1, Serialized)
{
CreateField (Arg0, 0x10, 0x03, FUCC)
CreateField (Arg0, 0x13, 0x06, DEVV)
CreateByteField (Arg0, 0x03, BUSS)
CreateByteField (Arg0, 0x04, NULN)
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, NULM)
Store (0x03, SZZE)
Store (One, NULM)
Store (ALIB (0x04, Arg0), AT00)
}
}
Device (PB2)
{
Name (_ADR, 0x00020000) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
If (LEqual (WKPM, One))
{
Return (GPRW (0x08, 0x05))
}
Else
{
Return (GPRW (0x08, Zero))
}
}
Name (PR02, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKB,
Zero
}
})
Name (AR02, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x10
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x11
}
})
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (AR02)
}
Return (PR02)
}
OperationRegion (XPEX, SystemMemory, 0xF8010100, 0x0100)
Field (XPEX, DWordAcc, NoLock, Preserve)
{
Offset (0x28),
VC0S, 32
}
OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
Field (XPCB, AnyAcc, NoLock, Preserve)
{
Offset (0x10),
LKCN, 16,
LKST, 16,
Offset (0x1A),
, 3,
PDC2, 1,
, 2,
PDS2, 1,
Offset (0x1B),
HPCS, 1,
Offset (0x20),
Offset (0x22),
PMES, 1
}
OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
Field (XPRI, ByteAcc, NoLock, Preserve)
{
XPIR, 32,
XPID, 32
}
OperationRegion (PCFG, PCI_Config, Zero, 0x20)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x18),
SBUS, 32
}
Method (XPDL, 0, NotSerialized)
{
If (And (VC0S, 0x00020000))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Mutex (XPPM, 0x00)
Method (XPRD, 1, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (XPID, Local0)
Store (Zero, XPIR)
Release (XPPM)
Return (Local0)
}
Method (XPWR, 2, NotSerialized)
{
Acquire (XPPM, 0xFFFF)
Store (Arg0, XPIR)
Store (Arg1, XPID)
Store (Zero, XPIR)
Release (XPPM)
}
Method (XPRT, 0, NotSerialized)
{
Store (XPRD (0xA2), Local0)
And (Local0, 0xFFFFFFF8, Local0)
ShiftRight (Local0, 0x04, Local1)
And (Local1, 0x07, Local1)
Or (Local0, Local1, Local0)
Or (Local0, 0x0100, Local0)
XPWR (0xA2, Local0)
}
Method (XPR2, 0, NotSerialized)
{
Store (LKCN, Local0)
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
Or (Local0, 0x20, Local0)
Store (Local0, LKCN)
Store (0x64, Local1)
Store (One, Local2)
While (LAnd (Local1, Local2))
{
Sleep (One)
Store (LKST, Local3)
If (And (Local3, 0x0800))
{
Decrement (Local1)
}
Else
{
Store (Zero, Local2)
}
}
And (Local0, 0xFFFFFFDF, Local0)
Store (Local0, LKCN)
If (LNot (Local2))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Method (XPPB, 0, NotSerialized)
{
Store (_ADR, Local0)
Store (ShiftRight (Local0, 0x10), Local1)
Store (ShiftLeft (Local1, 0x03), Local1)
Store (And (Local0, 0x0F), Local2)
Store (Or (Local1, Local2), Local3)
Return (Local3)
}
Method (XPPR, 1, NotSerialized)
{
Name (HPOK, Zero)
Store (Zero, HPOK)
Store (ShiftLeft (XPPB (), 0x03), Local0)
If (Arg0)
{
XPLL (Local0, One)
XPLP (Local0, One)
Sleep (0xC8)
XPTR (Local0, One)
Store (0x0F, Local5)
While (LAnd (LNot (HPOK), LGreater (Local5, Zero)))
{
Store (One, PDC2)
Store (0x28, Local1)
While (LAnd (LNot (HPOK), LGreater (Local1, Zero)))
{
Store (XPRD (0xA5), Local2)
If (LEqual (And (Local2, 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LEqual (And (ShiftRight (Local2, 0x08), 0xFF), 0x3F))
{
Store (One, Local1)
}
If (LGreaterEqual (And (Local2, 0xFF), 0x04))
{
Store (One, HPOK)
}
Decrement (Local1)
}
If (HPOK)
{
Store (And (XPRD (0xA5), 0xFF), Local2)
Store (And (ShiftRight (XPRD (0xA2), 0x04), 0x07), Local3)
If (LAnd (LEqual (Local2, 0x06), LAnd (LGreater (Local3, One), LLess (
Local3, 0x05))))
{
Store (Zero, HPOK)
}
}
If (HPOK)
{
Store (0x07D0, Local1)
Store (Zero, HPOK)
While (LAnd (LNot (HPOK), Local1))
{
Store (And (XPRD (0xA5), 0xFF), Local2)
If (LEqual (Local2, 0x07))
{
Store (One, Local1)
Store (XPDL (), Local4)
If (Local4)
{
XPRT ()
Decrement (Local5)
}
}
If (LEqual (Local2, 0x10))
{
Store (One, HPOK)
}
Sleep (One)
Decrement (Local1)
}
}
}
}
If (HPOK)
{
XPTR (Local0, Zero)
XPLP (Local0, Zero)
XPLL (Local0, Zero)
}
Return (Ones)
}
Device (VGA)
{
Name (_ADR, Zero) // _ADR: Address
OperationRegion (PCFG, PCI_Config, Zero, 0x50)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x2C),
SVID, 32,
Offset (0x4C),
SMID, 32
}
Name (DOSA, Zero)
Name (SWIT, One)
Name (CRTA, One)
Name (LCDA, One)
Name (HDMA, One)
Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching
{
Store (Arg0, DOSA)
}
Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices
{
Name (DODL, Package (0x03)
{
0x00010100,
0x00010110,
0x00010210
})
Return (DODL)
}
Device (LCD)
{
Name (_ADR, 0x0110) // _ADR: Address
Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
{
Store ("LCD -- _DCS", Debug)
If (LCDA)
{
Return (0x1F)
}
Else
{
Return (0x1D)
}
}
Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
{
Store ("LCD -- _DCS", Debug)
If (LCDA)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
Store ("LCD -- _DSS", Debug)
}
Name (BRTB, Package (0x0D)
{
0x64,
0x32,
Zero,
0x0A,
0x14,
0x1E,
0x28,
0x32,
0x3C,
0x46,
0x50,
0x5A,
0x64
})
Name (AU15, Package (0x0B)
{
0x07,
0x09,
0x0D,
0x11,
0x16,
0x1D,
0x25,
0x2F,
0x3C,
0x4E,
0x64
})
Name (CM15, Package (0x0B)
{
0x07,
0x09,
0x0D,
0x11,
0x16,
0x1D,
0x25,
0x2F,
0x3C,
0x4E,
0x64
})
Name (DEFT, Package (0x0B)
{
0x06,
0x08,
0x0B,
0x0E,
0x13,
0x19,
0x21,
0x2A,
0x36,
0x45,
0x64
})
Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels
{
Return (BRTB)
}
Name (BQCL, 0x06)
Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method
{
Store (Zero, BRLS)
Store (0x55, BCMF)
Store (Arg0, BCMV)
If (LAnd (LGreaterEqual (Arg0, Zero), LLessEqual (Arg0, 0x64)))
{
Store (Arg0, Local0)
Store (Arg0, BQCL)
Divide (Arg0, 0x0A, Local2, Local1)
Store (DerefOf (Index (DEFT, Local1)), Local0)
If (LEqual (LCDD, 0x22ECAF06))
{
Store (DerefOf (Index (AU15, Local1)), Local0)
}
If (LEqual (LCDD, 0x15A2AF0D))
{
Store (DerefOf (Index (CM15, Local1)), Local0)
}
}
If (^^^^LPC0.EC.ADP)
{
Store (Local1, ^^^^LPC0.EC.LCBA)
}
Else
{
Store (Local1, ^^^^LPC0.EC.LCBD)
}
Acquire (^^^^LPC0.PSMX, 0xFFFF)
Store (Local0, BRTL)
Store (0x72, BCMD)
BSMI (Zero)
Release (^^^^LPC0.PSMX)
}
Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current
{
Store (BQCL, Local0)
Return (Local0)
}
Method (BRAJ, 0, NotSerialized)
{
If (^^^^LPC0.EC.BRUP)
{
If (LLess (BCMV, 0x64))
{
Add (BCMV, 0x0A, Local0)
_BCM (Local0)
}
}
If (^^^^LPC0.EC.BRDN)
{
If (LGreater (BCMV, Zero))
{
Subtract (BCMV, 0x0A, Local0)
_BCM (Local0)
}
}
Store (One, BRLS)
}
}
Device (CRT)
{
Name (_ADR, 0x0100) // _ADR: Address
Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
{
Store ("CRT _DCS Debug", Debug)
If (CRTA)
{
Return (0x1F)
}
Else
{
Return (0x1D)
}
}
Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
{
Store ("CRT _DGS Debug", Debug)
If (CRTA)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
Store ("CRT _DSS Debug", Debug)
}
}
Device (HDMI)
{
Name (_ADR, 0x0210) // _ADR: Address
Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
{
Store ("HDMI _DCS Debug", Debug)
If (HDMA)
{
Return (0x1F)
}
Else
{
Return (0x1D)
}
}
Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
{
Store ("HDMI _DGS Debug", Debug)
If (HDMA)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
{
Store ("HDMI _DSS Debug", Debug)
}
}
Name (ATIB, Buffer (0x0100) {})
Method (ATIF, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
Return (AF00 ())
}
If (LEqual (Arg0, One))
{
Return (AF01 ())
}
If (LEqual (Arg0, 0x02))
{
Return (AF02 ())
}
If (LEqual (Arg0, 0x03))
{
Return (AF03 (DerefOf (Index (Arg1, 0x02)), DerefOf (Index (Arg1,
0x04))))
}
If (LEqual (Arg0, 0x0F))
{
Return (AF15 ())
}
Else
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, VERN)
CreateDWordField (ATIB, 0x04, NMSK)
CreateDWordField (ATIB, 0x08, SFUN)
Store (Zero, SSZE)
Store (Zero, VERN)
Store (Zero, NMSK)
Store (Zero, SFUN)
Return (ATIB)
}
}
Method (AF00, 0, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, VERN)
CreateDWordField (ATIB, 0x04, NMSK)
CreateDWordField (ATIB, 0x08, SFUN)
Store (0x0C, SSZE)
Store (One, VERN)
If (LEqual (^^^VGA.PXEN, 0x80000000))
{
Store (0x11, NMSK)
}
Else
{
Store (0x51, NMSK)
}
Store (NMSK, MSKN)
Store (0x4007, SFUN)
Return (ATIB)
}
Method (AF01, 0, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateDWordField (ATIB, 0x02, VMSK)
CreateDWordField (ATIB, 0x06, FLGS)
Store (0x0A, SSZE)
Store (0x0B, VMSK)
Store (0x0A, SSZE)
Store (0x0B, FLGS)
Return (ATIB)
}
Name (PSBR, Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
})
Name (MSKN, Zero)
Name (SEXM, Zero)
Name (STHG, Zero)
Name (STHI, Zero)
Name (SFPG, Zero)
Name (SFPI, Zero)
Name (SSPS, Zero)
Name (SSDM, 0x0A)
Name (SCDY, Zero)
Name (SACT, Buffer (0x07)
{
0x01, 0x02, 0x08, 0x80, 0x03, 0x09, 0x81
})
Method (AF02, 0, NotSerialized)
{
CreateBitField (PSBR, Zero, PDSW)
CreateBitField (PSBR, One, PEXM)
CreateBitField (PSBR, 0x02, PTHR)
CreateBitField (PSBR, 0x03, PFPS)
CreateBitField (PSBR, 0x04, PSPS)
CreateBitField (PSBR, 0x05, PDCC)
CreateBitField (PSBR, 0x06, PXPS)
CreateWordField (ATIB, Zero, SSZE)
CreateDWordField (ATIB, 0x02, PSBI)
CreateByteField (ATIB, 0x06, EXPM)
CreateByteField (ATIB, 0x07, THRM)
CreateByteField (ATIB, 0x08, THID)
CreateByteField (ATIB, 0x09, FPWR)
CreateByteField (ATIB, 0x0A, FPID)
CreateByteField (ATIB, 0x0B, SPWR)
Store (0x0C, SSZE)
Store (PSBR, PSBI)
If (PDSW)
{
Store (Zero, PDSW)
}
If (PEXM)
{
Store (SEXM, EXPM)
Store (Zero, SEXM)
Store (Zero, PEXM)
}
If (PTHR)
{
Store (STHG, THRM)
Store (STHI, THID)
Store (Zero, STHG)
Store (Zero, STHI)
Store (Zero, PTHR)
}
If (PFPS)
{
Store (SFPG, FPWR)
Store (SFPI, FPWR)
Store (Zero, SFPG)
Store (Zero, SFPI)
Store (Zero, PFPS)
}
If (PSPS)
{
Store (SSPS, SPWR)
Store (Zero, PSPS)
}
If (PXPS)
{
Store (Zero, PXPS)
}
Return (ATIB)
}
Method (AF03, 2, NotSerialized)
{
CreateWordField (ATIB, Zero, SSZE)
CreateWordField (ATIB, 0x02, SSDP)
CreateWordField (ATIB, 0x04, SCDP)
Store (Arg0, SSDP)
Store (Arg1, SCDP)
Name (NXTD, 0x06)
Name (CIDX, 0x06)
Store (SSDP, Local1)
And (Local1, 0x8B, Local1)
Store (SCDP, Local2)
If (CondRefOf (^^^^LID._LID, Local4))
{
And (Local2, 0xFFFFFFFE, Local2)
Or (Local2, ^^^^LID._LID (), Local2)
}
Else
{
Or (Local2, One, Local2)
}
Store (Local2, P80H)
Store (Zero, Local0)
While (LLess (Local0, SizeOf (SACT)))
{
Store (DerefOf (Index (SACT, Local0)), Local3)
If (LEqual (Local3, Local1))
{
Store (Local0, CIDX)
Store (SizeOf (SACT), Local0)
}
Else
{
Increment (Local0)
}
}
Store (CIDX, Local0)
While (LLess (Local0, SizeOf (SACT)))
{
Increment (Local0)
If (LEqual (Local0, SizeOf (SACT)))
{
Store (Zero, Local0)
}
Store (DerefOf (Index (SACT, Local0)), Local3)
If (LEqual (And (Local3, Local2), Local3))
{
Store (Local0, NXTD)
Store (SizeOf (SACT), Local0)
}
}
If (LEqual (NXTD, SizeOf (SACT)))
{
Store (Zero, SSDP)
}
Else
{
Store (NXTD, Local0)
Store (DerefOf (Index (SACT, Local0)), Local3)
And (SSDP, 0xFFFFFFF4, SSDP)
Or (SSDP, Local3, SSDP)
}
Store (0x04, SSZE)
Store (SSDP, P80H)
Return (ATIB)
}
Method (AFN0, 0, Serialized)
{
If (And (MSKN, One))
{
CreateBitField (PSBR, Zero, PDSW)
Store (One, PDSW)
Notify (VGA, 0x81)
}
}
Method (AFN3, 2, Serialized)
{
If (And (MSKN, 0x08))
{
Store (Arg0, Local0)
Store (Local0, SFPI)
Store (Arg1, Local0)
Store (And (Local0, 0x03, Local0), SFPG)
CreateBitField (PSBR, 0x03, PFPS)
Store (One, PFPS)
Notify (VGA, 0x81)
}
}
Method (AFN4, 1, Serialized)
{
If (And (MSKN, 0x10))
{
Store (Arg0, Local0)
Store (SSPS, Local1)
Store (Local0, SSPS)
If (LEqual (Local0, Local1)) {}
Else
{
CreateBitField (PSBR, 0x04, PSPS)
Store (One, PSPS)
Notify (VGA, 0x81)
}
}
}
Method (AFN5, 0, Serialized)
{
If (And (MSKN, 0x20))
{
CreateBitField (PSBR, 0x05, PDCC)
Store (One, PDCC)
Notify (VGA, 0x81)
}
}
Method (AFN6, 0, Serialized)
{
If (And (MSKN, 0x40))
{
CreateBitField (PSBR, 0x06, PXPS)
Store (One, PXPS)
Notify (VGA, 0x81)
}
}
Method (AF15, 0, NotSerialized)
{
Store (0xFF, P80H)
CreateWordField (ATIB, 0x02, DSZE)
Store (0x08, DSZE)
Acquire (^^^LPC0.PSMX, 0xFFFF)
Store (0x8D, BCMD)
Store (0x0F, DID)
Store (ATIB, INFO)
BSMI (Zero)
Store (INFO, ATIB)
Release (^^^LPC0.PSMX)
Return (ATIB)
}
Name (AT00, Buffer (0xFF) {})
Name (AT01, Buffer (0x03) {})
Method (ATCS, 2, Serialized)
{
If (LEqual (Arg0, Zero))
{
ATC0 ()
}
If (LEqual (Arg0, One))
{
ATC1 ()
}
If (LEqual (Arg0, 0x02))
{
ATC2 (Arg1)
}
If (LEqual (Arg0, 0x03))
{
ATC3 ()
}
If (LEqual (Arg0, 0x04))
{
ATC4 (Arg1)
}
Return (AT00)
}
Method (ATC0, 0, NotSerialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateWordField (AT00, 0x02, INTF)
CreateDWordField (AT00, 0x04, SUPP)
Store (0x08, SZZE)
Store (One, INTF)
Store (0x0F, SUPP)
}
Method (ATC1, 0, Serialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateDWordField (AT00, 0x02, VFMK)
CreateDWordField (AT00, 0x06, FLAG)
CreateField (AT00, 0x30, One, DOCK)
Store (0x0A, SZZE)
Store (One, VFMK)
Store (Zero, FLAG)
Store (One, DOCK)
}
Method (ATC2, 1, Serialized)
{
CreateField (Arg0, 0x10, 0x03, FUCC)
CreateField (Arg0, 0x13, 0x06, DEVV)
CreateByteField (Arg0, 0x03, BUSS)
CreateDWordField (Arg0, 0x04, VFMK)
CreateDWordField (Arg0, 0x06, FLAG)
CreateField (Arg0, 0x30, One, ADVC)
CreateField (Arg0, 0x31, One, WFCM)
CreateByteField (Arg0, 0x08, RQST)
CreateByteField (Arg0, 0x09, PFRQ)
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, RETV)
Store (0x03, SZZE)
Store (One, RETV)
Store (ALIB (0x02, Arg0), AT00)
}
Method (ATC3, 0, Serialized)
{
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, RETV)
CreateWordField (AT01, Zero, SZZB)
CreateByteField (AT01, 0x02, PSPP)
Store (0x03, SZZE)
Store (One, RETV)
Store (0x03, SZZB)
Store (One, PSPP)
Store (ALIB (0x03, AT01), AT00)
}
Method (ATC4, 1, Serialized)
{
CreateField (Arg0, 0x10, 0x03, FUCC)
CreateField (Arg0, 0x13, 0x06, DEVV)
CreateByteField (Arg0, 0x03, BUSS)
CreateByteField (Arg0, 0x04, NULN)
CreateWordField (AT00, Zero, SZZE)
CreateByteField (AT00, 0x02, NULM)
Store (0x03, SZZE)
Store (One, NULM)
Store (ALIB (0x04, Arg0), AT00)
}
Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
{
If (LNotEqual (^^^VGA.PXMX, 0x80000000))
{
Return (Zero)
}
Else
{
If (LEqual (0x18, XPPB ()))
{
If (LNotEqual (^^^VGA.PXEN, 0x80000000))
{
Return (Zero)
}
Else
{
Return (One)
}
}
Else
{
Return (Zero)
}
}
}
}
Device (HDAU)
{
Name (_ADR, One) // _ADR: Address
OperationRegion (PCFG, PCI_Config, Zero, 0x50)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
DVID, 32,
Offset (0x2C),
SVID, 32,
Offset (0x4C),
SMID, 32
}
}
}
Device (PB3)
{
Name (_ADR, 0x00030000) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
If (LEqual (WKPM, One))
{
Return (GPRW (0x08, 0x04))
}
Else
{
Return (GPRW (0x08, Zero))
}
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (GPIC)
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
Zero,
0x13
},
Package (0x04)
{
0xFFFF,
One,
Zero,
0x10
},
Package (0x04)
{
0xFFFF,
0x02,
Zero,
0x11
},
Package (0x04)
{
0xFFFF,
0x03,
Zero,
0x12
}
})
}
Else
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKA,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKC,
Zero
}
})
}
}
OperationRegion (XPEX, SystemMemory, 0xF8018100, 0x0100)
Field (XPEX, DWordAcc, NoLock, Preserve)
{
Offset (0x28),
VC0S, 32
}
OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
Field (XPCB, AnyAcc, NoLock, Preserve)
{
Offset (0x10),
LKCN, 16,
LKST, 16,
Offset (0x1A),
, 3,
PDC2, 1,
, 2,
PDS2, 1,
Offset (0x1B),
HPCS, 1,
Offset (0x20),
Offset (0x22),
PMES, 1