/* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20160108-64 * Copyright (c) 2000 - 2016 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of dsdt.dat, Tue Mar 22 02:02:07 2016 * * Original Table Header: * Signature "DSDT" * Length 0x0000A74B (42827) * Revision 0x01 **** 32-bit table (V1), no 64-bit math support * Checksum 0xF9 * OEM ID "LENOVO" * OEM Table ID "CB-01 " * OEM Revision 0x00000001 (1) * Compiler ID "MSFT" * Compiler Version 0x01000013 (16777235) */ DefinitionBlock ("dsdt.aml", "DSDT", 1, "LENOVO", "CB-01 ", 0x00000001) { External (_PR_.C000._PPC, UnknownObj) External (_PR_.C001._PPC, UnknownObj) External (_PR_.C002._PPC, UnknownObj) External (_PR_.C003._PPC, UnknownObj) OperationRegion (DBG0, SystemIO, 0x80, One) Field (DBG0, ByteAcc, NoLock, Preserve) { IO80, 8 } OperationRegion (DEB2, SystemIO, 0x80, 0x02) Field (DEB2, WordAcc, NoLock, Preserve) { P80H, 16 } OperationRegion (ACMS, SystemIO, 0x72, 0x02) Field (ACMS, ByteAcc, NoLock, Preserve) { INDX, 8, DATA, 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 (0x60), P1EB, 16, Offset (0xC8), , 2, SPRE, 1, TPDE, 1, Offset (0xF0), , 3, RSTU, 1 } OperationRegion (GSMM, SystemMemory, MMSO, 0x1000) Field (GSMM, AnyAcc, NoLock, Preserve) { Offset (0x132), , 7, GP51, 1, Offset (0x136), , 7, GP55, 1, Offset (0x13A), , 7, GP59, 1, Offset (0x13F), , 7, GP64, 1, Offset (0x160), , 7, GE01, 1, Offset (0x16A), , 7, GE11, 1, , 7, GE12, 1, Offset (0x16E), , 7, BATS, 1, Offset (0x1FF), , 1, G01S, 1, Offset (0x203), , 1, G01E, 1, Offset (0x207), , 1, TR01, 1, Offset (0x20B), , 1, TL01, 1, Offset (0x20D), , 7, ACIR, 1, Offset (0x287), , 1, CLPS, 1, Offset (0x298), , 7, G15A, 1, Offset (0x2AF), , 2, SLPS, 2, Offset (0x376), EPNM, 1, DPPF, 1, Offset (0x3BA), , 6, PWDE, 1, Offset (0x3BD), , 5, ALLS, 1, Offset (0x3DE), BLNK, 2, Offset (0x3EF), PHYD, 1, Offset (0xE80), , 2, ECES, 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 (PCM1, Zero) Name (IW1S, Zero) Name (IW2S, Zero) Method (OT80, 1, NotSerialized) { APMD = Arg0 APMC = 0xE5 Stall (0xFF) Stall (0xFF) Stall (0xFF) Stall (0xFF) Stall (0xFF) Stall (0xFF) } Name (PS48, Zero) Name (PS49, Zero) Name (PS4A, Zero) Name (PS4B, Zero) Name (PRWP, Package (0x02) { Zero, Zero }) Method (GPRW, 2, NotSerialized) { PRWP [Zero] = Arg0 PRWP [One] = Arg1 If (((DAS3 == Zero) && (DAS1 == Zero))) { If ((Arg1 <= 0x03)) { PRWP [One] = Zero } } ElseIf (((DAS3 == Zero) && (Arg1 == 0x03))) { PRWP [One] = One } Return (PRWP) /* \PRWP */ } Method (SPTS, 1, NotSerialized) { If ((Arg0 == 0x03)) { RSTU = Zero } CLPS = One SLPS = One PEWS = PEWS /* \PEWS */ } Method (SWAK, 1, NotSerialized) { If ((Arg0 == 0x03)) { RSTU = One } PEWS = PEWS /* \PEWS */ PEWD = Zero } Method (TRMD, 1, NotSerialized) { SPRE = Arg0 TPDE = Arg0 } Method (CHKH, 0, NotSerialized) { } OperationRegion (MBOX, SystemMemory, 0xDFEBEA18, 0x00000352) Field (MBOX, AnyAcc, NoLock, Preserve) { PCI1, 8, PCI2, 8, PCI3, 8, PCI4, 8, PCI5, 8, PCI6, 8, PCI7, 8, PCI8, 8, NLCK, 8, ZIPE, 8, COMA, 8, CAIO, 8, CAIP, 8, CAMD, 8, CADA, 8, COMB, 8, CBIO, 8, CBIP, 8, CBMD, 8, CBDA, 8, FHSD, 8, COMC, 8, CCIO, 8, CCIP, 8, CCMD, 8, CCDA, 8, COMD, 8, CDIO, 8, CDIP, 8, CDMD, 8, CDDA, 8, LPT1, 8, L1IO, 8, L1IP, 8, L1MD, 8, L1DA, 8, LPT2, 8, L2IO, 8, L2IP, 8, L2MD, 8, L2DA, 8, LPT3, 8, L3IO, 8, L3IP, 8, L3MD, 8, L3DA, 8, FDDC, 8, FDWP, 8, HGMP, 8, LGMP, 8, MIDI, 8, AZLA, 8, AUDO, 8, MODM, 8, IDEC, 8, SSED, 8, PACT, 8, SCFG, 8, AMOD, 8, IMOD, 8, LCFG, 8, IDLY, 8, PMTP, 8, PMIO, 8, PMBM, 8, PMTM, 8, PSTP, 8, PSIO, 8, PSBM, 8, PSTM, 8, IDE0, 8, IDE1, 8, IDE2, 8, IDE3, 8, IDE4, 8, IDE5, 8, IDE6, 8, IDE7, 8, HIUB, 8, LUBS, 8, PLYT, 8, EDCG, 8, SDFY, 8, SDTC, 8, SDRP, 8, SDCL, 8, SDRC, 8, SDRE, 8, FC2L, 8, FC3L, 8, FCS4, 8, APIM, 8, HPTS, 8, HPTA, 8, EMAS, 8, VGAO, 8, SOFF, 8, KBPO, 8, MSPO, 8, USBB, 8, EVTL, 8, SYBE, 8, ETLC, 8, ACPV, 8, TPMD, 8, TPMO, 8, TPMC, 8, TPMM, 8, TPCC, 8, TPLC, 8, TPLR, 32, QBOT, 8, QTBT, 8, PBOT, 8, M256, 8, PEGF, 8, OSYS, 16, BMTP, 8, BNPT, 8, LNMT, 8, NBTO, 8, NABD, 8, NEBD, 8, NLBD, 8, DFBT, 16, NPSP, 16, LANG, 8, UACL, 8, SUPS, 8, DVET, 8, S3RS, 8, DAS1, 8, DAS3, 8, WKPM, 8, WKMD, 8, WKS5, 8, HOUR, 8, MINS, 8, SECS, 8, DOFM, 8, NBTV, 64, BTOD, 64, SPVP, 16, POPD, 16, USPW, 16, HDPW, 16, SAHP, 16, SAHF, 8, SUVF, 8, USRF, 8, UMPW, 8, SMHP, 16, SAMP, 16, SAMF, 8, SPFA, 8, SPFB, 8, SPFC, 8, SPFD, 8, SPFE, 8, SPFF, 8, SPFG, 8, SPFH, 8, SPFI, 8, SPFJ, 8, SPFK, 8, SPFL, 8, SPFM, 8, SPFN, 8, SPFO, 8, SPFP, 8, SPFQ, 8, SPFR, 8, SPFS, 8, SPFT, 8, SPFU, 8, SPFV, 8, SPFW, 8, SPFX, 8, SPFY, 8, SPFZ, 8, SPF0, 8, SPF1, 8, SPF2, 8, SPF3, 8, SPF4, 8, SPF5, 8, CRD0, 8, CRD1, 8, CRD2, 8, CRD3, 8, CRD4, 8, CRD5, 8, CRD6, 8, CRD7, 8, SPCR, 8, KRSV, 64, LIMF, 8, LIMS, 8, IGMT, 8, PWST, 8, PNOW, 8, FNON, 8, TRON, 8, PCRR, 8, C4EN, 8, C43D, 8, MPST, 8, VTSP, 8, VTFT, 8, PFMP, 8, PVAT, 8, OHC0, 8, OHC1, 8, OHC2, 8, OHC3, 8, EHC0, 8, EHC1, 8, EHC2, 8, SATE, 8, EC1E, 8, ESVM, 8, MCLC, 8, MCLV, 8, HTFR, 8, HTWD, 8, GSPL, 8, P2G2, 8, P2LA, 8, P2LW, 8, P2SP, 8, P2LI, 8, P2CM, 8, P3G2, 8, P3GL, 8, P3LA, 8, P3LW, 8, P3SP, 8, P3LI, 8, P3CM, 8, P4G2, 8, P4LA, 8, P4LI, 8, P4CM, 8, P5G2, 8, P5LA, 8, P5LI, 8, P5CM, 8, P6G2, 8, P6LA, 8, P6LI, 8, P6CM, 8, P7G2, 8, P7LA, 8, P7LI, 8, P7CM, 8, P8LA, 8, P8VT, 8, P8CM, 8, P9G2, 8, P9LA, 8, P9LI, 8, P9CM, 8, PAG2, 8, PALA, 8, PALI, 8, PACM, 8, UMAR, 8, CPST, 8, OSCS, 8, SSSW, 8, OBLS, 8, SVFS, 8, AHCM, 8, AORS, 8, XGPS, 8, CMEN, 8, CMPC, 8, CMHT, 8, CBIF, 8, TCFN, 8, LDIS, 8, GFL0, 8, GL0C, 8, GL0M, 8, GFL1, 8, GL1C, 8, GL1M, 8, GFL2, 8, GL2C, 8, GL2M, 8, GFL3, 8, GL3C, 8, GL3M, 8, ALST, 8, TPMS, 8, HDAU, 8, WLSH, 8, CTFW, 8, PSIC, 8, LASO, 8, SSCL, 8, SMSO, 8, SMMS, 8, CMEW, 8, SOTP, 8, NSVC, 8, HXMD, 8, ILST, 8, PSDM, 8, TCP0, 8, TCP1, 8, ATNB, 8, PCP0, 8, PCP1, 8, PWMN, 8, TNBH, 8, THTE, 8, ADSC, 8, ACTM, 8, DCTM, 8, CBCC, 8, ONTM, 8, OFTM, 8, PHCT, 8, PHFQ, 8, TMZE, 8, NDPS, 8, LPTY, 8, VDRM, 8, ILSW, 8, EXUS, 8, PWPL, 8, AFUC, 8, SP0P, 8, SP1P, 8, SP2P, 8, SP3P, 8, SP4P, 8, SP5P, 8, FCRD, 8, M92D, 8, RELT, 8, OLOR, 8, ILOR, 8, AIRC, 8, TRAN, 8, CRSV, 640, TPRV, 1760, L5IG, 8, L5OW, 8, L5WF, 8, L5OM, 8, L5MF, 8, L5PB, 8, LVOL, 8, LCST, 8, L5PD, 8, TPVD, 8, ORSV, 472, Offset (0x2EE), LRTO, 8, DRSV, 792 } OperationRegion (NVST, SystemMemory, 0xDFEBED6A, 0x0000012D) 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, CPUS, 8, TPDF, 8, CPUN, 8 } Method (SCMP, 2, NotSerialized) { Name (STG1, Buffer (0x50) {}) Name (STG2, Buffer (0x50) {}) STG1 = Arg0 STG2 = Arg1 If ((SizeOf (Arg0) != SizeOf (Arg1))) { Return (Zero) } Local0 = Zero While ((Local0 < SizeOf (Arg0))) { If ((DerefOf (STG1 [Local0]) != DerefOf (STG2 [Local0] ))) { Return (Zero) } Local0++ } Return (One) } Name (WNOS, Zero) Method (CKOS, 0, NotSerialized) { If ((WNOS == Zero)) { If (SCMP (_OS, "Microsoft Windows")) { WNOS = One } If (SCMP (_OS, "Microsoft Windows NT")) { WNOS = 0x02 } If (SCMP (_OS, "Microsoft WindowsME: Millennium Edition")) { WNOS = 0x03 } If (CondRefOf (_OSI, Local0)) { If (SCMP (_OS, "Windows 2006")) { WNOS = 0x05 } ElseIf (SCMP (_OS, "Windows 2009")) { WNOS = 0x06 } Else { WNOS = 0x04 } } } Return (WNOS) /* \WNOS */ } Name (MYOS, Zero) Name (HTTS, Zero) Method (SEQL, 2, Serialized) { Local0 = SizeOf (Arg0) Local1 = SizeOf (Arg1) If ((Local0 != Local1)) { Return (Zero) } Name (BUF0, Buffer (Local0) {}) BUF0 = Arg0 Name (BUF1, Buffer (Local0) {}) BUF1 = Arg1 Local2 = Zero While ((Local2 < Local0)) { Local3 = DerefOf (BUF0 [Local2]) Local4 = DerefOf (BUF1 [Local2]) If ((Local3 != Local4)) { Return (Zero) } Local2++ } Return (One) } Name (OSTB, Ones) Name (TPOS, Zero) Name (LINX, Zero) Name (OSSP, Zero) Method (OSTP, 0, NotSerialized) { If ((OSTB == Ones)) { If (CondRefOf (_OSI, Local0)) { OSTB = Zero TPOS = Zero If (_OSI ("Windows 2001")) { OSTB = 0x08 TPOS = 0x08 } If (_OSI ("Windows 2001.1")) { OSTB = 0x20 TPOS = 0x20 } If (_OSI ("Windows 2001 SP1")) { OSTB = 0x10 TPOS = 0x10 } If (_OSI ("Windows 2001 SP2")) { OSTB = 0x11 TPOS = 0x11 } If (_OSI ("Windows 2001 SP3")) { OSTB = 0x12 TPOS = 0x12 } If (_OSI ("Windows 2006")) { OSTB = 0x40 TPOS = 0x40 } If (_OSI ("Windows 2006 SP1")) { OSTB = 0x41 TPOS = 0x41 OSSP = One } If (_OSI ("Windows 2009")) { OSSP = One OSTB = 0x50 TPOS = 0x50 } If (_OSI ("Linux")) { LINX = One OSTB = 0x80 TPOS = 0x80 } } ElseIf (CondRefOf (_OS, Local0)) { If (SEQL (_OS, "Microsoft Windows")) { OSTB = One TPOS = One } ElseIf (SEQL (_OS, "Microsoft WindowsME: Millennium Edition")) { OSTB = 0x02 TPOS = 0x02 } ElseIf (SEQL (_OS, "Microsoft Windows NT")) { OSTB = 0x04 TPOS = 0x04 } Else { OSTB = Zero TPOS = Zero } } Else { OSTB = Zero TPOS = Zero } } Return (OSTB) /* \OSTB */ } Scope (_PR) { Processor (C000, 0x00, 0x00000410, 0x06) {} Processor (C001, 0x01, 0x00000000, 0x00) {} Processor (C002, 0x02, 0x00000000, 0x00) {} Processor (C003, 0x03, 0x00000000, 0x00) {} } Name (ECON, Zero) Name (APTG, Zero) Name (APEJ, Zero) Name (APSD, Zero) Name (_S0, Package (0x04) // _S0_: S0 System State { Zero, Zero, Zero, Zero }) If ((DAS1 == One)) { Name (_S1, Package (0x04) // _S1_: S1 System State { One, Zero, Zero, Zero }) } If ((DAS3 == One)) { Name (_S3, Package (0x04) // _S3_: S3 System State { 0x03, Zero, Zero, Zero }) } Name (_S4, Package (0x04) // _S4_: S4 System State { 0x04, Zero, Zero, Zero }) Name (_S5, Package (0x04) // _S5_: S5 System State { 0x05, Zero, Zero, Zero }) Scope (_GPE) { Method (_L08, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.PB2, 0x02) // Device Wake Notify (\_SB.PCI0.PB4, 0x02) // Device Wake Notify (\_SB.PCI0.PB5, 0x02) // Device Wake Notify (\_SB.PCI0.PB6, 0x02) // Device Wake Notify (\_SB.PCI0.PB7, 0x02) // Device Wake Notify (\_SB.PCI0.PB9, 0x02) // Device Wake Notify (\_SB.PCI0.PB10, 0x02) // Device Wake } Method (_L04, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.P2P, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L18, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.USB0, 0x02) // Device Wake Notify (\_SB.PCI0.USB1, 0x02) // Device Wake Notify (\_SB.PCI0.USB2, 0x02) // Device Wake Notify (\_SB.PCI0.USB3, 0x02) // Device Wake Notify (\_SB.PCI0.USB4, 0x02) // Device Wake Notify (\_SB.PCI0.USB5, 0x02) // Device Wake Notify (\_SB.PCI0.USB6, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L12, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Notify (\_SB.PCI0.PB4, 0x02) // Device Wake Notify (\_SB.PCI0.PB5, 0x02) // Device Wake Notify (\_SB.PCI0.PB6, 0x02) // Device Wake Notify (\_SB.PCI0.PB7, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L15, 0, NotSerialized) // _Lxx: Level-Triggered GPE { P80H = 0x15 Name (HPOK, Zero) Sleep (0xC8) If (\_SB.PCI0.SMBS.GE21) { \_SB.PCI0.SMBS.E21C = Zero P80H = 0x0F05 } Else { \_SB.PCI0.SMBS.E21C = One P80H = 0x0205 } Notify (\_SB.PCI0.SPB0, Zero) // Bus Check } } Scope (_TZ) { Name (DTMP, 0x0BBA) Name (DAC0, 0x0CA0) Name (DPSV, 0x1088) Name (TBSE, 0x0AAC) Name (DCRT, 0x127C) ThermalZone (THRM) { Method (_TMP, 0, NotSerialized) // _TMP: Temperature { If ((\_SB.PCI0.LPC0.EC0.ECK == One)) { Local0 = (\_SB.PCI0.LPC0.EC0.CTMP * 0x0A) Local0 += 0x0AAC Return (Local0) } Return (DTMP) /* \_TZ_.DTMP */ } Method (_AC0, 0, NotSerialized) // _ACx: Active Cooling { Return (DAC0) /* \_TZ_.DAC0 */ } Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature { Return (DCRT) /* \_TZ_.DCRT */ } Method (_PSV, 0, NotSerialized) // _PSV: Passive Temperature { Return (DPSV) /* \_TZ_.DPSV */ } Method (_PSL, 0, Serialized) // _PSL: Passive List { If ((CPUN == One)) { Return (Package (0x01) { \_PR.C000 }) } ElseIf ((CPUN == 0x02)) { Return (Package (0x02) { \_PR.C000, \_PR.C001 }) } ElseIf ((CPUN == 0x03)) { Return (Package (0x03) { \_PR.C000, \_PR.C001, \_PR.C002 }) } ElseIf ((CPUN == 0x04)) { Return (Package (0x04) { \_PR.C000, \_PR.C001, \_PR.C002, \_PR.C003 }) } } Name (_TC1, 0x02) // _TC1: Thermal Constant 1 Name (_TC2, 0x05) // _TC2: Thermal Constant 2 Name (_TSP, 0x012C) // _TSP: Thermal Sampling Period } ThermalZone (THR1) { Method (_TMP, 0, NotSerialized) // _TMP: Temperature { If ((\_SB.PCI0.LPC0.EC0.ECK == One)) { Local0 = (\_SB.PCI0.LPC0.EC0.SKTA * 0x0A) Local0 += 0x0AAC Return (Local0) } Return (DTMP) /* \_TZ_.DTMP */ } Method (_AC0, 0, NotSerialized) // _ACx: Active Cooling { Return (DAC0) /* \_TZ_.DAC0 */ } Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature { Return (DCRT) /* \_TZ_.DCRT */ } Method (_PSV, 0, NotSerialized) // _PSV: Passive Temperature { Return (DPSV) /* \_TZ_.DPSV */ } Method (_PSL, 0, Serialized) // _PSL: Passive List { Return (Package (0x02) { \_PR.C000, \_PR.C001 }) } Name (_TC1, 0x02) // _TC1: Thermal Constant 1 Name (_TC2, 0x05) // _TC2: Thermal Constant 2 Name (_TSP, 0x012C) // _TSP: Thermal Sampling Period } } Name (GPIC, Zero) Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model { GPIC = Arg0 If (GPIC) { \_SB.DSPI () } } Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep { SPTS (Arg0) If ((Arg0 == One)) { IO80 = 0x51 \_SB.S80H (0x51) } If ((Arg0 == 0x03)) { IO80 = 0x53 \_SB.S80H (0x53) Local0 = \_SB.PCI0.LPC0.EC0.ADPT If (Local0) { \_SB.PCI0.LPC0.EC0.UWAK = One } Else { \_SB.PCI0.LPC0.EC0.UWAK = Zero } \_SB.PCI0.LPC0.EC0.UWAK = One \_SB.PCI0.SMBS.SLPS = One } If ((Arg0 == 0x04)) { IO80 = 0x54 \_SB.S80H (0x54) \_SB.GSMI (0x82) \_SB.PCI0.SMBS.SLPS = One \_SB.PCI0.SMBS.RSTU = One } If ((Arg0 == 0x05)) { IO80 = 0x55 \_SB.S80H (0x55) \_SB.GSMI (0x03) } } Method (_WAK, 1, NotSerialized) // _WAK: Wake { SWAK (Arg0) If ((Arg0 == One)) { IO80 = 0xE1 \_SB.S80H (0xE1) \_SB.PCI0.P2P.PR4B = 0xF1 } If ((Arg0 == 0x03)) { IO80 = 0xE3 \_SB.S80H (0xE3) \_SB.PCI0.SATA.ELDS () \_SB.PCI0.AMD3.HTCS () \_SB.PCI0.SMBS.E06C = Zero } If ((Arg0 == 0x04)) { IO80 = 0xE4 \_SB.S80H (0xE4) \_SB.PCI0._INI () \_SB.PCI0.SATA.ELDS () Notify (\_SB.PWRB, 0x02) // Device Wake } Return (Zero) } Scope (_SB) { Device (PWRB) { Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0B) } } Device (PCI0) { Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _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 ((GPIC == Zero)) {} Else { DSPI () } OSTP () CHKH () If (CondRefOf (_OSI, Local0)) { MYOS = Zero } ElseIf ((SizeOf (_OS) == 0x14)) { MYOS = One } ElseIf ((SizeOf (_OS) == 0x27)) { MYOS = 0x02 } Else { MYOS = 0x03 } ^AMD3.HTCS () } 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) Local0 = (Arg0 & 0x7F) MIDX = Local0 Local0 = MIDR /* \_SB_.PCI0.MIDR */ MIDX = 0x7F Release (NBMM) Return (Local0) } Method (NBMW, 2, NotSerialized) { Acquire (NBMM, 0xFFFF) Local0 = (Arg0 & 0x7F) Local0 |= 0x80 MIDX = Local0 MIDR = Arg1 MIDX = Local0 &= 0x7F 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) NBXI = Arg0 Local0 = NBXD /* \_SB_.PCI0.NBXD */ NBXI = Zero Release (NBXM) Return (Local0) } Method (NBXW, 2, NotSerialized) { Acquire (NBXM, 0xFFFF) NBXI = Arg0 NBXD = Arg1 NBXI = Zero Release (NBXM) } Method (GFXM, 0, NotSerialized) { Local0 = NBMR (0x08) Local0 &= 0x0F Return (Local0) } Method (GPPM, 0, NotSerialized) { Local0 = NBMR (0x31) Local0 &= 0x0F Return (Local0) } Method (XPTR, 2, NotSerialized) { If (((Arg0 < 0x02) && (Arg0 > 0x07))) { Return (Zero) } Else { Local0 = One If ((Arg0 < 0x04)) { Local1 = (Arg0 + 0x02) } Else { Local1 = (Arg0 + 0x11) } Local0 <<= Local1 Local2 = NBMR (0x08) If (Arg1) { Local2 &= ~Local0 } Else { Local2 |= Local0 } NBMW (0x08, Local2) Return (Ones) } } Method (GPPX, 0, NotSerialized) { Local0 = NBMR (0x2D) Local0 >>= 0x07 Local0 &= 0x0F Return (Local0) } Name (_UID, One) // _UID: Unique ID Name (_BBN, Zero) // _BBN: BIOS Bus Number Name (SUPP, Zero) Name (CTRL, Zero) Name (AMHP, Zero) Method (XOSC, 4, NotSerialized) { CreateDWordField (Arg3, Zero, CDW1) CreateDWordField (Arg3, 0x04, CDW2) CreateDWordField (Arg3, 0x08, CDW3) If ((OSTB != 0x41)) { CDW1 |= 0x02 Return (Arg3) } If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) { SUPP = CDW2 /* \_SB_.PCI0.XOSC.CDW2 */ CTRL = CDW3 /* \_SB_.PCI0.XOSC.CDW3 */ If (((SUPP & 0x16) != 0x16)) { (CTRL & 0x1E) } CTRL &= 0x1D If (~(CDW1 & One)) { If ((CTRL & One)) {} If ((CTRL & 0x04)) { ^SMBS.EPNM = One ^SMBS.DPPF = Zero ^SMBS.PWDE = One } Else { ^SMBS.EPNM = Zero ^SMBS.DPPF = One ^SMBS.PWDE = Zero } If ((CTRL & 0x10)) {} } If ((Arg1 != One)) { CDW1 |= 0x08 } If ((CDW3 != CTRL)) { CDW1 |= 0x10 } CDW3 = CTRL /* \_SB_.PCI0.CTRL */ Return (Arg3) } Else { CDW1 |= 0x04 Return (Arg3) } } Method (TOM, 0, NotSerialized) { Local0 = (TOML * 0x00010000) Local1 = (TOMH * 0x01000000) Local0 += Local1 Return (Local0) } OperationRegion (NBBR, PCI_Config, 0x1C, 0x08) Field (NBBR, DWordAcc, NoLock, Preserve) { BR3L, 32, BR3H, 32 } OperationRegion (NBBI, PCI_Config, 0x84, 0x04) Field (NBBI, DWordAcc, NoLock, Preserve) { PARB, 32 } Name (PX3L, 0x80000000) Name (PX3H, 0x80000000) Name (PX3S, 0x10000000) Name (PX3K, 0xF0000000) Mutex (BR3X, 0x00) Method (BR3M, 0, NotSerialized) { Local0 = PARB /* \_SB_.PCI0.PARB */ Local0 >>= 0x10 Local0 &= 0x07 If (Local0) { Local1 = (One << Local0) Local1 = (0x1000 - Local1) Local1 <<= 0x14 PX3K = Local1 Local1 = (One << Local0) Local1 *= 0x00100000 PX3S = Local1 } Acquire (BR3X, 0xFFFF) Local0 = NBMR (Zero) Local0 &= 0xFFFFFFF7 NBMW (Zero, Local0) Local0 = BR3L /* \_SB_.PCI0.BR3L */ Local0 &= PX3K /* \_SB_.PCI0.PX3K */ PX3L = Local0 Local0 = BR3H /* \_SB_.PCI0.BR3H */ Local0 &= 0xFF PX3H = Local0 Local0 = NBMR (Zero) Local0 |= 0x08 NBMW (Zero, Local0) Release (BR3X) Return (PX3L) /* \_SB_.PCI0.PX3L */ } 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 0x00000000, // Range Minimum 0xFFFDFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00000000, // Length 0x00,, _Y00, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Granularity 0xF0000000, // Range Minimum 0xFED3FFFF, // Range Maximum 0x00000000, // Translation Offset 0x10000000, // Length 0x00,, _Y01, 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 CreateDWordField (CRES, \_SB.PCI0._Y01._MIN, BTN1) // _MIN: Minimum Base Address CreateDWordField (CRES, \_SB.PCI0._Y01._MAX, BTX1) // _MAX: Maximum Base Address CreateDWordField (CRES, \_SB.PCI0._Y01._LEN, BTL1) // _LEN: Length BTMN = TOM () BTLN = (BR3M () - BTMN) /* \_SB_.PCI0._CRS.BTMN */ BTMX = ((BTMN + BTLN) - One) Local0 = PX3S /* \_SB_.PCI0.PX3S */ Local0 += BR3M () BTN1 = Local0 Local1 = BTX1 /* \_SB_.PCI0._CRS.BTX1 */ Local2 = (Local1 - Local0) BTL1 = Local2 Return (CRES) /* \_SB_.PCI0.CRES */ } Device (MEMR) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (MEM1, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00000000, // Address Length _Y02) Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00000000, // Address Length _Y03) Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00000000, // Address Length _Y04) Memory32Fixed (ReadWrite, 0xFED80000, // Address Base 0x00001000, // Address Length ) }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y02._BAS, MB01) // _BAS: Base Address CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y02._LEN, ML01) // _LEN: Length CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y03._BAS, MB02) // _BAS: Base Address CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y03._LEN, ML02) // _LEN: Length CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y04._BAS, PEBS) // _BAS: Base Address CreateDWordField (MEM1, \_SB.PCI0.MEMR._Y04._LEN, PELN) // _LEN: Length If (GPIC) { MB01 = 0xFEC00000 MB02 = 0xFEE00000 ML01 = 0x1000 ML02 = 0x1000 } PEBS = BR3M () PELN = PX3S /* \_SB_.PCI0.PX3S */ Return (MEM1) /* \_SB_.PCI0.MEMR.MEM1 */ } } OperationRegion (NBRV, PCI_Config, 0x08, One) Field (NBRV, ByteAcc, NoLock, Preserve) { PREV, 8 } Method (XCMP, 2, NotSerialized) { If ((0x10 != SizeOf (Arg0))) { Return (Zero) } If ((0x10 != SizeOf (Arg1))) { Return (Zero) } Local0 = Zero While ((Local0 < 0x10)) { If ((DerefOf (Arg0 [Local0]) != DerefOf (Arg1 [Local0] ))) { Return (Zero) } Local0++ } Return (One) } Method (AFN0, 0, Serialized) { If ((PDDN == One)) { ^AGP.VGA.AFN0 () } If ((PDDN == 0x02)) { ^PB2.VGA.AFN0 () } If ((PDDN == 0x03)) { ^PB3.VGA.AFN0 () } } Method (AFN1, 1, Serialized) { } Method (AFN2, 2, Serialized) { } Method (AFN3, 2, Serialized) { If ((PDDN == One)) { ^AGP.VGA.AFN3 (Arg0, Arg1) } If ((PDDN == 0x02)) { ^PB2.VGA.AFN3 (Arg0, Arg1) } If ((PDDN == 0x03)) { ^PB3.VGA.AFN3 (Arg0, Arg1) } } Method (AFN4, 1, Serialized) { If ((PDDN == One)) { ^AGP.VGA.AFN4 (Arg0) } If ((PDDN == 0x02)) { ^PB2.VGA.AFN4 (Arg0) } If ((PDDN == 0x03)) { ^PB3.VGA.AFN4 (Arg0) } } Method (AFN5, 0, Serialized) { If ((PDDN == One)) { ^AGP.VGA.AFN5 () } If ((PDDN == 0x02)) { ^PB2.VGA.AFN5 () } If ((PDDN == 0x03)) { ^PB3.VGA.AFN5 () } } Method (AFN6, 0, Serialized) { If ((PDDN == One)) { ^AGP.VGA.AFN6 () } If ((PDDN == 0x02)) { ^PB2.VGA.AFN6 () } If ((PDDN == 0x03)) { ^PB3.VGA.AFN6 () } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If ((GPIC == Zero)) { Return (PICM) /* \_SB_.PCI0.PICM */ } Else { Return (APIC) /* \_SB_.PCI0.APIC */ } } Name (PICM, Package (0x31) { Package (0x04) { 0x0001FFFF, Zero, LNKC, Zero }, Package (0x04) { 0x0001FFFF, One, LNKD, 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) { 0x0003FFFF, Zero, LNKD, Zero }, Package (0x04) { 0x0003FFFF, One, LNKA, Zero }, Package (0x04) { 0x0003FFFF, 0x02, LNKB, Zero }, Package (0x04) { 0x0003FFFF, 0x03, LNKC, Zero }, Package (0x04) { 0x0004FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0004FFFF, One, LNKB, Zero }, Package (0x04) { 0x0004FFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x0004FFFF, 0x03, LNKD, 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 }, Package (0x04) { 0x0009FFFF, Zero, LNKB, Zero }, Package (0x04) { 0x0009FFFF, One, LNKC, Zero }, Package (0x04) { 0x0009FFFF, 0x02, LNKD, Zero }, Package (0x04) { 0x0009FFFF, 0x03, LNKA, Zero }, Package (0x04) { 0x000AFFFF, Zero, LNKC, Zero }, Package (0x04) { 0x000AFFFF, One, LNKD, Zero }, Package (0x04) { 0x000AFFFF, 0x02, LNKA, Zero }, Package (0x04) { 0x000AFFFF, 0x03, 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) { 0x0012FFFF, Zero, LNKC, Zero }, Package (0x04) { 0x0012FFFF, One, LNKB, Zero }, Package (0x04) { 0x0013FFFF, Zero, LNKC, Zero }, Package (0x04) { 0x0013FFFF, One, LNKB, Zero }, Package (0x04) { 0x0016FFFF, Zero, LNKC, Zero }, Package (0x04) { 0x0016FFFF, One, LNKB, Zero }, Package (0x04) { 0x0011FFFF, Zero, LNKD, Zero }, Package (0x04) { 0x0015FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0015FFFF, One, LNKB, Zero }, Package (0x04) { 0x0015FFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x0015FFFF, 0x03, LNKD, Zero } }) Name (APIC, Package (0x31) { Package (0x04) { 0x0001FFFF, Zero, Zero, 0x12 }, Package (0x04) { 0x0001FFFF, One, Zero, 0x13 }, 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) { 0x0003FFFF, Zero, Zero, 0x13 }, Package (0x04) { 0x0003FFFF, One, Zero, 0x10 }, Package (0x04) { 0x0003FFFF, 0x02, Zero, 0x11 }, Package (0x04) { 0x0003FFFF, 0x03, Zero, 0x12 }, Package (0x04) { 0x0004FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0004FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0004FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0004FFFF, 0x03, Zero, 0x13 }, 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 }, Package (0x04) { 0x0009FFFF, Zero, Zero, 0x11 }, Package (0x04) { 0x0009FFFF, One, Zero, 0x12 }, Package (0x04) { 0x0009FFFF, 0x02, Zero, 0x13 }, Package (0x04) { 0x0009FFFF, 0x03, Zero, 0x10 }, Package (0x04) { 0x000AFFFF, Zero, Zero, 0x12 }, Package (0x04) { 0x000AFFFF, One, Zero, 0x13 }, Package (0x04) { 0x000AFFFF, 0x02, Zero, 0x10 }, Package (0x04) { 0x000AFFFF, 0x03, 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) { 0x0012FFFF, Zero, Zero, 0x12 }, Package (0x04) { 0x0012FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0013FFFF, Zero, Zero, 0x12 }, Package (0x04) { 0x0013FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0016FFFF, Zero, Zero, 0x12 }, Package (0x04) { 0x0016FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0011FFFF, Zero, Zero, 0x13 }, Package (0x04) { 0x0015FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0015FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0015FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0015FFFF, 0x03, Zero, 0x13 } }) Device (AGP) { Name (_ADR, 0x00010000) // _ADR: Address Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If ((GPIC == Zero)) { Return (PIC) /* \_SB_.PCI0.AGP_.PIC_ */ } Else { Return (APIC) /* \_SB_.PCI0.AGP_.APIC */ } } Name (PIC, Package (0x04) { Package (0x04) { 0x0005FFFF, Zero, LNKC, Zero }, Package (0x04) { 0x0005FFFF, One, LNKD, Zero }, Package (0x04) { 0x0005FFFF, 0x02, LNKA, Zero }, Package (0x04) { 0x0005FFFF, 0x03, LNKB, Zero } }) Name (APIC, Package (0x04) { Package (0x04) { 0x0005FFFF, Zero, Zero, 0x12 }, Package (0x04) { 0x0005FFFF, One, Zero, 0x13 }, Package (0x04) { 0x0005FFFF, 0x02, Zero, 0x10 }, Package (0x04) { 0x0005FFFF, 0x03, Zero, 0x11 } }) Name (PXEN, 0x80000000) Name (PXID, 0x00020000) Name (PXMX, 0x80000000) Device (VGA) { Name (_ADR, 0x00050000) // _ADR: Address Name (DOSA, Zero) Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching { DOSA = Arg0 } Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices { Name (DODL, Package (0x05) { 0x00010100, 0x00010110, 0x0200, 0x00010210, 0x00010220 }) Return (DODL) /* \_SB_.PCI0.AGP_.VGA_._DOD.DODL */ } Device (LCD) { Name (_ADR, 0x0110) // _ADR: Address Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels { Return (Package (0x0D) { 0x46, 0x28, Zero, 0x0A, 0x14, 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50, 0x5A, 0x64 }) } Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method { P80H = 0x35 Divide (Arg0, 0x0A, Local0, Local1) ^^^^LPC0.EC0.BRTS = Local1 } Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current { Local0 = (^^^^LPC0.EC0.BRTS * 0x0A) Return (Local0) } } Name (ATIB, Buffer (0x0100) {}) Method (ATIF, 2, Serialized) { If ((Arg0 == Zero)) { Return (AF00 ()) } If ((Arg0 == One)) { Return (AF01 ()) } If ((Arg0 == 0x02)) { Return (AF02 ()) } If ((Arg0 == 0x03)) { Return (AF03 (DerefOf (Arg1 [0x02]), DerefOf (Arg1 [0x04]))) } If ((Arg0 == 0x0F)) { Return (AF15 ()) } Else { CreateWordField (ATIB, Zero, SSZE) CreateWordField (ATIB, 0x02, VERN) CreateDWordField (ATIB, 0x04, NMSK) CreateDWordField (ATIB, 0x08, SFUN) SSZE = Zero VERN = Zero NMSK = Zero SFUN = Zero Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.ATIB */ } } Method (AF00, 0, NotSerialized) { CreateWordField (ATIB, Zero, SSZE) CreateWordField (ATIB, 0x02, VERN) CreateDWordField (ATIB, 0x04, NMSK) CreateDWordField (ATIB, 0x08, SFUN) SSZE = 0x0C VERN = One If ((PXEN == 0x80000000)) { NMSK = 0x11 } Else { NMSK = 0x51 } MSKN = NMSK /* \_SB_.PCI0.AGP_.VGA_.AF00.NMSK */ SFUN = 0x4007 Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.ATIB */ } Method (AF01, 0, NotSerialized) { CreateWordField (ATIB, Zero, SSZE) CreateDWordField (ATIB, 0x02, VMSK) CreateDWordField (ATIB, 0x06, FLGS) SSZE = 0x0A VMSK = 0x0B SSZE = 0x0A FLGS = 0x0B Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.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) SSZE = 0x0C PSBI = PSBR /* \_SB_.PCI0.AGP_.VGA_.PSBR */ If (PDSW) { PDSW = Zero } If (PEXM) { EXPM = SEXM /* \_SB_.PCI0.AGP_.VGA_.SEXM */ SEXM = Zero PEXM = Zero } If (PTHR) { THRM = STHG /* \_SB_.PCI0.AGP_.VGA_.STHG */ THID = STHI /* \_SB_.PCI0.AGP_.VGA_.STHI */ STHG = Zero STHI = Zero PTHR = Zero } If (PFPS) { FPWR = SFPG /* \_SB_.PCI0.AGP_.VGA_.SFPG */ FPWR = SFPI /* \_SB_.PCI0.AGP_.VGA_.SFPI */ SFPG = Zero SFPI = Zero PFPS = Zero } If (PSPS) { SPWR = SSPS /* \_SB_.PCI0.AGP_.VGA_.SSPS */ PSPS = Zero } If (PXPS) { PXPS = Zero } Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.ATIB */ } Method (AF03, 2, NotSerialized) { CreateWordField (ATIB, Zero, SSZE) CreateWordField (ATIB, 0x02, SSDP) CreateWordField (ATIB, 0x04, SCDP) SSDP = Arg0 SCDP = Arg1 Name (NXTD, 0x06) Name (CIDX, 0x06) Local1 = SSDP /* \_SB_.PCI0.AGP_.VGA_.AF03.SSDP */ Local1 &= 0x8B Local2 = SCDP /* \_SB_.PCI0.AGP_.VGA_.AF03.SCDP */ If (CondRefOf (^^^^LID._LID, Local4)) { Local2 &= 0xFFFFFFFE Local2 |= ^^^^LID._LID () } Else { Local2 |= One } P80H = Local2 Local0 = Zero While ((Local0 < SizeOf (SACT))) { Local3 = DerefOf (SACT [Local0]) If ((Local3 == Local1)) { CIDX = Local0 Local0 = SizeOf (SACT) } Else { Local0++ } } Local0 = CIDX /* \_SB_.PCI0.AGP_.VGA_.AF03.CIDX */ While ((Local0 < SizeOf (SACT))) { Local0++ If ((Local0 == SizeOf (SACT))) { Local0 = Zero } Local3 = DerefOf (SACT [Local0]) If (((Local3 & Local2) == Local3)) { NXTD = Local0 Local0 = SizeOf (SACT) } } If ((NXTD == SizeOf (SACT))) { SSDP = Zero } Else { Local0 = NXTD /* \_SB_.PCI0.AGP_.VGA_.AF03.NXTD */ Local3 = DerefOf (SACT [Local0]) SSDP &= 0xFFFFFFF4 SSDP |= Local3 } SSZE = 0x04 P80H = SSDP /* \_SB_.PCI0.AGP_.VGA_.AF03.SSDP */ Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.ATIB */ } Method (AFN0, 0, Serialized) { If ((MSKN & One)) { CreateBitField (PSBR, Zero, PDSW) PDSW = One Notify (VGA, 0x81) // Information Change } } Method (AFN3, 2, Serialized) { If ((MSKN & 0x08)) { Local0 = Arg0 SFPI = Local0 Local0 = Arg1 SFPG = Local0 &= 0x03 CreateBitField (PSBR, 0x03, PFPS) PFPS = One Notify (VGA, 0x81) // Information Change } } Method (AFN4, 1, Serialized) { If ((MSKN & 0x10)) { Local0 = Arg0 Local1 = SSPS /* \_SB_.PCI0.AGP_.VGA_.SSPS */ SSPS = Local0 If ((Local0 == Local1)) {} Else { CreateBitField (PSBR, 0x04, PSPS) PSPS = One Notify (VGA, 0x81) // Information Change } } } Method (AFN5, 0, Serialized) { If ((MSKN & 0x20)) { CreateBitField (PSBR, 0x05, PDCC) PDCC = One Notify (VGA, 0x81) // Information Change } } Method (AFN6, 0, Serialized) { If ((MSKN & 0x40)) { CreateBitField (PSBR, 0x06, PXPS) PXPS = One Notify (VGA, 0x81) // Information Change } } Method (AF15, 0, NotSerialized) { P80H = 0xFF CreateWordField (ATIB, 0x02, DSZE) DSZE = 0x08 Acquire (^^^LPC0.PSMX, 0xFFFF) BCMD = 0x8D DID = 0x0F INFO = ATIB /* \_SB_.PCI0.AGP_.VGA_.ATIB */ BSMI (Zero) ATIB = INFO /* \INFO */ Release (^^^LPC0.PSMX) Return (ATIB) /* \_SB_.PCI0.AGP_.VGA_.ATIB */ } } Scope (VGA) { OperationRegion (REVD, SystemMemory, 0xDFEBCE98, 0x00000008) Field (REVD, AnyAcc, NoLock, Preserve) { SROM, 32, VROM, 32 } Name (TVGA, Buffer (0x0004) { 0x00 /* . */ }) Method (XTRM, 2, Serialized) { Local0 = (Arg0 + Arg1) If ((Local0 <= SROM)) { Local1 = (Arg1 * 0x08) Local2 = (Arg0 * 0x08) TVGA = VROM /* \_SB_.PCI0.AGP_.VGA_.VROM */ CreateField (TVGA, Local2, Local1, TEMP) Name (RETB, Buffer (Arg1) {}) RETB = TEMP /* \_SB_.PCI0.AGP_.VGA_.XTRM.TEMP */ Return (RETB) /* \_SB_.PCI0.AGP_.VGA_.XTRM.RETB */ } ElseIf ((Arg0 < SROM)) { Local3 = (SROM - Arg0) Local1 = (Local3 * 0x08) Local2 = (Arg0 * 0x08) TVGA = VROM /* \_SB_.PCI0.AGP_.VGA_.VROM */ CreateField (TVGA, Local2, Local1, TEM) Name (RETC, Buffer (Local3) {}) RETC = TEM /* \_SB_.PCI0.AGP_.VGA_.XTRM.TEM_ */ Return (RETC) /* \_SB_.PCI0.AGP_.VGA_.XTRM.RETC */ } Else { Name (RETD, Buffer (One) {}) Return (RETD) /* \_SB_.PCI0.AGP_.VGA_.XTRM.RETD */ } } } Scope (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 /* ...0. */ }) Name (CNT5, Buffer (0x05) { 0x05, 0x00, 0x01, 0x10, 0x01 /* ..... */ }) Name (CNT6, Buffer (0x05) { 0x05, 0x01, 0x01, 0x00, 0x01 /* ..... */ }) Name (CNT7, Buffer (0x05) { 0x07, 0x03, 0x01, 0x10, 0x02 /* ..... */ }) Name (CNT8, Buffer (0x05) { 0x07, 0x07, 0x01, 0x20, 0x02 /* ... . */ }) Name (CNT9, Buffer (0x05) { 0x00, 0x09, 0x01, 0x30, 0x02 /* ...0. */ }) Method (ATPX, 2, Serialized) { If ((Arg0 == Zero)) { Return (PX00 ()) } If ((Arg0 == One)) { Return (PX01 ()) } If ((Arg0 == 0x02)) { PX02 (DerefOf (Arg1 [0x02])) Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */ } If ((Arg0 == 0x03)) { PX03 (DerefOf (Arg1 [0x02])) Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */ } If ((Arg0 == 0x04)) { PX04 (DerefOf (Arg1 [0x02])) Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */ } If ((Arg0 == 0x08)) { Return (PX08 ()) } If ((Arg0 == 0x09)) { Return (PX09 ()) } CreateWordField (ATPB, Zero, SSZE) CreateWordField (ATPB, 0x02, VERN) CreateDWordField (ATPB, 0x04, SFUN) SSZE = Zero VERN = Zero SFUN = Zero Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */ } Method (PX00, 0, NotSerialized) { P80H = 0xE0 CreateWordField (ATPB, Zero, SSZE) CreateWordField (ATPB, 0x02, VERN) CreateDWordField (ATPB, 0x04, SFUN) SSZE = 0x08 VERN = One If ((PXEN == 0x80000000)) { SFUN = Zero Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */ } If ((PXMX == 0x80000000)) { SFUN = 0x018F } Else { SFUN = 0x0182 } If ((PXID == ^^^PB3._ADR)) { Local0 = ^^^PB3.VGA.SVID /* \_SB_.PCI0.PB3_.VGA_.SVID */ Local1 = ^^^PB3.HDAU.SVID /* \_SB_.PCI0.PB3_.HDAU.SVID */ } Else { Local0 = ^^^PB2.VGA.SVID /* \_SB_.PCI0.PB2_.VGA_.SVID */ Local1 = ^^^PB2.HDAU.SVID /* \_SB_.PCI0.PB2_.HDAU.SVID */ } If ((Local0 != Ones)) { DSID = Local0 } If ((Local1 != Ones)) { HSID = Local1 } Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */ } Method (PX01, 0, NotSerialized) { P80H = 0xE1 CreateWordField (ATPB, Zero, SSZE) CreateDWordField (ATPB, 0x02, VMSK) CreateDWordField (ATPB, 0x06, FLGS) SSZE = 0x0A VMSK = 0x7F FLGS = 0x4B Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */ } Method (PX02, 1, NotSerialized) { CreateWordField (ATPB, Zero, SSZE) CreateByteField (ATPB, 0x02, PWST) SSZE = 0x03 PWST = (Arg0 & One) Name (HPOK, Zero) If (PWST) { P80H = 0x11E2 ^^^SMBS.G45O = One ^^^SMBS.G45E = Zero Sleep (0x0A) ^^^SMBS.G55O = One ^^^SMBS.G55E = Zero Sleep (0x64) ^^^SMBS.MX32 = One While ((^^^SMBS.G32I == Zero)) {} ^^^SMBS.G35O = One ^^^SMBS.G35E = Zero P80H = 0x12E2 HPOK = Zero Sleep (0x64) Sleep (0x64) If ((PXID == ^^^PB3._ADR)) { XPTR (0x03, One) } Else { XPTR (0x02, One) } Sleep (0x14) Local2 = Zero While ((Local2 < 0x0F)) { If ((PXID == ^^^PB3._ADR)) { ^^^PB3.PDC3 = One } Else { ^^^PB2.PDC2 = One } Local4 = One Local5 = 0xC8 While ((Local4 && Local5)) { If ((PXID == ^^^PB3._ADR)) { Local6 = ^^^PB3.XPRD (0xA5) } Else { Local6 = ^^^PB2.XPRD (0xA5) } Local6 &= 0x7F If (((Local6 >= 0x10) && (Local6 != 0x7F))) { Local4 = Zero } Else { Sleep (0x05) Local5-- } } If (!Local4) { If ((PXID == ^^^PB3._ADR)) { Local5 = ^^^PB3.XPDL () } Else { Local5 = ^^^PB2.XPDL () } If (Local5) { If ((PXID == ^^^PB3._ADR)) { ^^^PB3.XPRT () } Else { ^^^PB2.XPRT () } Sleep (0x05) Local2++ } ElseIf ((PXID == ^^^PB3._ADR)) { MUXF = 0x18 } Else { MUXF = 0x10 } } Else { Local2 = 0x10 } } If (!HPOK) { P80H = 0x13E2 If ((PXID == ^^^PB3._ADR)) { Local7 = ^^^PB3.VGA.DVID /* \_SB_.PCI0.PB3_.VGA_.DVID */ } Else { Local7 = ^^^PB2.VGA.DVID /* \_SB_.PCI0.PB2_.VGA_.DVID */ } Sleep (0x0A) Local4 = One Local5 = 0x05 While ((Local4 && Local5)) { If ((PXID == ^^^PB3._ADR)) { Local6 = ^^^PB3.XPRD (0xA5) } Else { Local6 = ^^^PB2.XPRD (0xA5) } Local6 &= 0x7F If ((Local6 <= 0x04)) { Local4 = Zero } ElseIf ((PXID == ^^^PB3._ADR)) { Local7 = ^^^PB3.VGA.DVID /* \_SB_.PCI0.PB3_.VGA_.DVID */ } Else { Local7 = ^^^PB2.VGA.DVID /* \_SB_.PCI0.PB2_.VGA_.DVID */ } } If ((PXID == ^^^PB3._ADR)) { XPTR (0x03, Zero) } Else { XPTR (0x02, Zero) } } P80H = 0x14E2 } Else { P80H = 0x02E2 If ((PXID == ^^^PB3._ADR)) { MUXF = 0x18 } Else { MUXF = 0x10 } BCMD = 0x85 BSMI (Zero) ^^^SMBS.G35O = Zero ^^^SMBS.G35E = Zero ^^^SMBS.G55O = Zero ^^^SMBS.G55E = Zero Sleep (0x0A) ^^^SMBS.G45O = Zero ^^^SMBS.G45E = Zero P80H = 0x03E2 If ((PXID == ^^^PB3._ADR)) { ^^^PB3.PDC3 = One Local7 = ^^^PB3.VGA.DVID /* \_SB_.PCI0.PB3_.VGA_.DVID */ } Else { ^^^PB2.PDC2 = One Local7 = ^^^PB2.VGA.DVID /* \_SB_.PCI0.PB2_.VGA_.DVID */ } Sleep (0x0A) Local4 = One Local5 = 0x05 While ((Local4 && Local5)) { If ((PXID == ^^^PB3._ADR)) { Local6 = ^^^PB3.XPRD (0xA5) } Else { Local6 = ^^^PB2.XPRD (0xA5) } Local6 &= 0x7F If ((Local6 <= 0x04)) { Local4 = Zero } ElseIf ((PXID == ^^^PB3._ADR)) { Local7 = ^^^PB3.VGA.DVID /* \_SB_.PCI0.PB3_.VGA_.DVID */ } Else { Local7 = ^^^PB2.VGA.DVID /* \_SB_.PCI0.PB2_.VGA_.DVID */ } } If ((PXID == ^^^PB3._ADR)) { XPTR (0x03, Zero) } Else { XPTR (0x02, Zero) } HPOK = 0x02 P80H = 0x04E2 } If (HPOK) { If (((HPOK == One) && (DSID != Ones))) { If ((PXID == ^^^PB3._ADR)) { Local7 = DSID /* \_SB_.PCI0.AGP_.VGA_.DSID */ ^^^PB3.VGA.SMID = Local7 Sleep (0x0A) Local7 = HSID /* \_SB_.PCI0.AGP_.VGA_.HSID */ If ((Local7 != Ones)) { ^^^PB3.HDAU.SMID = Local7 } } Else { Local7 = DSID /* \_SB_.PCI0.AGP_.VGA_.DSID */ ^^^PB2.VGA.SMID = Local7 Sleep (0x0A) Local7 = HSID /* \_SB_.PCI0.AGP_.VGA_.HSID */ If ((Local7 != Ones)) { ^^^PB2.HDAU.SMID = Local7 } } Sleep (0x0A) } If ((PXID == ^^^PB3._ADR)) { Notify (PB3, Zero) // Bus Check } Else { Notify (PB2, Zero) // Bus Check } } } Method (PX03, 1, NotSerialized) { CreateWordField (ATPB, Zero, SSZE) CreateWordField (ATPB, 0x02, DPSW) SSZE = 0x04 DPSW = (Arg0 & One) If (DPSW) { P80H = 0x02E3 ^^^SMBS.G06O = One ^^^SMBS.G06E = Zero } Else { P80H = 0x01E3 ^^^SMBS.G06O = Zero ^^^SMBS.G06E = Zero } } Method (PX04, 1, NotSerialized) { P80H = 0xE4 CreateWordField (ATPB, Zero, SSZE) CreateWordField (ATPB, 0x02, ICSW) SSZE = 0x04 ICSW = (Arg0 & One) If (ICSW) { P80H = 0x02E4 ^^^SMBS.G20O = One ^^^SMBS.G20E = Zero } Else { P80H = 0x01E4 ^^^SMBS.G20O = Zero ^^^SMBS.G20E = Zero } } Method (PX08, 0, NotSerialized) { P80H = 0xE8 CreateWordField (ATPB, Zero, CNUM) CreateWordField (ATPB, 0x02, CSSZ) CNUM = 0x0A CSSZ = 0x05 CreateField (ATPB, 0x20, 0x28, CTI0) CTI0 = CNT0 /* \_SB_.PCI0.AGP_.VGA_.CNT0 */ CreateField (ATPB, 0x48, 0x28, CTI1) CTI1 = CNT1 /* \_SB_.PCI0.AGP_.VGA_.CNT1 */ CreateField (ATPB, 0x70, 0x28, CTI2) CreateByteField (CNT2, Zero, FLG2) If ((LPTY == One)) { If ((M92D == One)) { FLG2 = Zero } If ((M92D == 0x02)) { FLG2 = 0x07 } } CTI2 = CNT2 /* \_SB_.PCI0.AGP_.VGA_.CNT2 */ CreateField (ATPB, 0x98, 0x28, CTI3) CreateByteField (CNT3, Zero, FLG3) If ((LPTY == Zero)) { FLG3 = 0x07 } If ((LPTY == One)) { FLG3 = Zero If ((M92D == 0x02)) { FLG3 = 0x07 } } If ((LPTY == 0x02)) { FLG3 = Zero If ((M92D == 0x02)) { FLG3 = 0x07 } } CTI3 = CNT3 /* \_SB_.PCI0.AGP_.VGA_.CNT3 */ CreateField (ATPB, 0xC0, 0x28, CTI4) CTI4 = CNT4 /* \_SB_.PCI0.AGP_.VGA_.CNT4 */ CreateField (ATPB, 0xE8, 0x28, CTI5) CTI5 = CNT5 /* \_SB_.PCI0.AGP_.VGA_.CNT5 */ CreateField (ATPB, 0x0110, 0x28, CTI6) CTI6 = CNT6 /* \_SB_.PCI0.AGP_.VGA_.CNT6 */ CreateField (ATPB, 0x0138, 0x28, CTI7) CreateByteField (CNT7, Zero, FLG7) If ((LPTY == One)) { If ((M92D == One)) { FLG7 = Zero } If ((M92D == 0x02)) { FLG7 = 0x07 } } CTI7 = CNT7 /* \_SB_.PCI0.AGP_.VGA_.CNT7 */ CreateField (ATPB, 0x0160, 0x28, CTI8) CreateByteField (CNT8, Zero, FLG8) If ((LPTY == Zero)) { FLG8 = 0x07 } If ((LPTY == One)) { FLG8 = Zero } If ((LPTY == 0x02)) { FLG8 = Zero } If ((M92D == 0x02)) { FLG8 = 0x07 } CTI8 = CNT8 /* \_SB_.PCI0.AGP_.VGA_.CNT8 */ CreateField (ATPB, 0x0188, 0x28, CTI9) CreateByteField (CNT9, Zero, FLG9) If ((M92D == 0x02)) { FLG9 = 0x07 } CTI9 = CNT9 /* \_SB_.PCI0.AGP_.VGA_.CNT9 */ Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */ } Method (PX09, 0, NotSerialized) { P80H = 0xE9 CreateWordField (ATPB, Zero, CNUM) CreateWordField (ATPB, 0x02, CSSZ) CNUM = Zero CSSZ = Zero CreateByteField (ATPB, 0x04, ATI0) CreateByteField (ATPB, 0x05, HPD0) CreateByteField (ATPB, 0x06, DDC0) ATI0 = Zero HPD0 = Zero DDC0 = Zero CreateByteField (ATPB, 0x07, ATI1) CreateByteField (ATPB, 0x08, HPD1) CreateByteField (ATPB, 0x09, DDC1) ATI1 = Zero HPD1 = Zero DDC1 = Zero Return (ATPB) /* \_SB_.PCI0.AGP_.VGA_.ATPB */ } } } Device (PB2) { Name (_ADR, 0x00020000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x05)) } Else { Return (GPRW (0x08, Zero)) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC) { Return (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 } }) } Else { Return (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 } }) } } 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 (XPEX, SystemMemory, 0xF8010100, 0x0100) Field (XPEX, DWordAcc, NoLock, Preserve) { Offset (0x28), VC02, 32 } OperationRegion (PCFG, PCI_Config, Zero, 0x20) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32, Offset (0x18), SBUS, 32 } Method (XPDL, 0, NotSerialized) { If ((VC02 & 0x00020000)) { Return (Ones) } Else { Return (Zero) } } Method (XPRD, 1, NotSerialized) { XPIR = Arg0 Local0 = XPID /* \_SB_.PCI0.PB2_.XPID */ XPIR = Zero Return (Local0) } Method (XPWR, 2, NotSerialized) { XPIR = Arg0 XPID = Arg1 XPIR = Zero } Method (XPRT, 0, NotSerialized) { Local0 = XPRD (0xA2) Local0 &= 0xFFFFFFF8 Local1 = (Local0 >> 0x04) Local1 &= 0x07 Local0 |= Local1 Local0 |= 0x0100 XPWR (0xA2, Local0) } Method (XPLP, 1, NotSerialized) { Local0 = NBMR (0x08) Local0 >>= 0x08 Local0 &= 0x0F If (Local0) { Local1 = 0x0F0F } Else { Local1 = 0xFFFF } Local2 = NBXR (0x65) If (Arg0) { Local2 &= ~Local1 } Else { Local2 |= Local1 } NBXW (0x65, Local2) } Method (XPLL, 1, NotSerialized) { Local0 = NBMR (0x08) Local0 >>= 0x08 Local0 &= 0x0F If (Local0) { Local2 = NBMR (0x07) If ((Local2 && 0x0201F000)) { Local1 = 0x00550050 Local2 = NBXR (0x65) If ((~Local2 && 0xF0F0)) { Local3 = 0x00110010 } Local3 = Local1 } Else { Local1 = 0x00110010 Local3 = Local1 Local2 = NBXR (0x65) If ((~Local2 && 0xFFFF)) { Local3 = Zero } } Local2 = NBMR (0x2E) If (Arg0) { Local2 &= ~Local1 } Else { Local2 |= Local3 } NBMW (0x2E, Local2) } Else { Local2 = NBMR (0x07) If ((Local2 && 0x0201F000)) { Local1 = 0x00550050 Local2 = NBXR (0x65) If ((Local2 && 0xFFFF)) { Local3 = 0x00110010 } Local3 = Local1 } Else { Local1 = 0x00110010 Local3 = Local1 Local2 = NBXR (0x65) If ((Local2 && 0xFFFF)) { Local3 = Zero } } Local2 = NBMR (0x2E) If (Arg0) { Local2 &= ~Local1 } Else { Local2 |= Local3 } NBMW (0x2E, Local2) } } Method (XPR2, 0, NotSerialized) { Local0 = LKCN /* \_SB_.PCI0.PB2_.LKCN */ Local0 &= 0xFFFFFFDF LKCN = Local0 Local0 |= 0x20 LKCN = Local0 Local1 = 0x64 Local2 = One While ((Local1 && Local2)) { Sleep (One) Local3 = LKST /* \_SB_.PCI0.PB2_.LKST */ If ((Local3 & 0x0800)) { Local1-- } Else { Local2 = Zero } } Local0 &= 0xFFFFFFDF LKCN = Local0 If (!Local2) { Return (Ones) } Else { Return (Zero) } } 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) Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching { DOSA = Arg0 } Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices { Name (DODL, Package (0x05) { 0x00010100, 0x00010110, 0x0200, 0x00010210, 0x00010220 }) Return (DODL) /* \_SB_.PCI0.PB2_.VGA_._DOD.DODL */ } Device (LCD) { Name (_ADR, 0x0110) // _ADR: Address Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels { Return (Package (0x0D) { 0x46, 0x28, Zero, 0x0A, 0x14, 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50, 0x5A, 0x64 }) } Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method { P80H = 0x35 Divide (Arg0, 0x0A, Local0, Local1) ^^^^LPC0.EC0.BRTS = Local1 } Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current { Local0 = (^^^^LPC0.EC0.BRTS * 0x0A) Return (Local0) } } Name (ATIB, Buffer (0x0100) {}) Method (ATIF, 2, Serialized) { If ((Arg0 == Zero)) { Return (AF00 ()) } If ((Arg0 == One)) { Return (AF01 ()) } If ((Arg0 == 0x02)) { Return (AF02 ()) } If ((Arg0 == 0x03)) { Return (AF03 (DerefOf (Arg1 [0x02]), DerefOf (Arg1 [0x04]))) } If ((Arg0 == 0x0F)) { Return (AF15 ()) } Else { CreateWordField (ATIB, Zero, SSZE) CreateWordField (ATIB, 0x02, VERN) CreateDWordField (ATIB, 0x04, NMSK) CreateDWordField (ATIB, 0x08, SFUN) SSZE = Zero VERN = Zero NMSK = Zero SFUN = Zero Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.ATIB */ } } Method (AF00, 0, NotSerialized) { CreateWordField (ATIB, Zero, SSZE) CreateWordField (ATIB, 0x02, VERN) CreateDWordField (ATIB, 0x04, NMSK) CreateDWordField (ATIB, 0x08, SFUN) SSZE = 0x0C VERN = One If ((^^^AGP.PXEN == 0x80000000)) { NMSK = 0x11 } Else { NMSK = 0x51 } MSKN = NMSK /* \_SB_.PCI0.PB2_.VGA_.AF00.NMSK */ SFUN = 0x4007 Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.ATIB */ } Method (AF01, 0, NotSerialized) { CreateWordField (ATIB, Zero, SSZE) CreateDWordField (ATIB, 0x02, VMSK) CreateDWordField (ATIB, 0x06, FLGS) SSZE = 0x0A VMSK = 0x0B SSZE = 0x0A FLGS = 0x0B Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.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) SSZE = 0x0C PSBI = PSBR /* \_SB_.PCI0.PB2_.VGA_.PSBR */ If (PDSW) { PDSW = Zero } If (PEXM) { EXPM = SEXM /* \_SB_.PCI0.PB2_.VGA_.SEXM */ SEXM = Zero PEXM = Zero } If (PTHR) { THRM = STHG /* \_SB_.PCI0.PB2_.VGA_.STHG */ THID = STHI /* \_SB_.PCI0.PB2_.VGA_.STHI */ STHG = Zero STHI = Zero PTHR = Zero } If (PFPS) { FPWR = SFPG /* \_SB_.PCI0.PB2_.VGA_.SFPG */ FPWR = SFPI /* \_SB_.PCI0.PB2_.VGA_.SFPI */ SFPG = Zero SFPI = Zero PFPS = Zero } If (PSPS) { SPWR = SSPS /* \_SB_.PCI0.PB2_.VGA_.SSPS */ PSPS = Zero } If (PXPS) { PXPS = Zero } Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.ATIB */ } Method (AF03, 2, NotSerialized) { CreateWordField (ATIB, Zero, SSZE) CreateWordField (ATIB, 0x02, SSDP) CreateWordField (ATIB, 0x04, SCDP) SSDP = Arg0 SCDP = Arg1 Name (NXTD, 0x06) Name (CIDX, 0x06) Local1 = SSDP /* \_SB_.PCI0.PB2_.VGA_.AF03.SSDP */ Local1 &= 0x8B Local2 = SCDP /* \_SB_.PCI0.PB2_.VGA_.AF03.SCDP */ If (CondRefOf (^^^^LID._LID, Local4)) { Local2 &= 0xFFFFFFFE Local2 |= ^^^^LID._LID () } Else { Local2 |= One } P80H = Local2 Local0 = Zero While ((Local0 < SizeOf (SACT))) { Local3 = DerefOf (SACT [Local0]) If ((Local3 == Local1)) { CIDX = Local0 Local0 = SizeOf (SACT) } Else { Local0++ } } Local0 = CIDX /* \_SB_.PCI0.PB2_.VGA_.AF03.CIDX */ While ((Local0 < SizeOf (SACT))) { Local0++ If ((Local0 == SizeOf (SACT))) { Local0 = Zero } Local3 = DerefOf (SACT [Local0]) If (((Local3 & Local2) == Local3)) { NXTD = Local0 Local0 = SizeOf (SACT) } } If ((NXTD == SizeOf (SACT))) { SSDP = Zero } Else { Local0 = NXTD /* \_SB_.PCI0.PB2_.VGA_.AF03.NXTD */ Local3 = DerefOf (SACT [Local0]) SSDP &= 0xFFFFFFF4 SSDP |= Local3 } SSZE = 0x04 P80H = SSDP /* \_SB_.PCI0.PB2_.VGA_.AF03.SSDP */ Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.ATIB */ } Method (AFN0, 0, Serialized) { If ((MSKN & One)) { CreateBitField (PSBR, Zero, PDSW) PDSW = One Notify (VGA, 0x81) // Information Change } } Method (AFN3, 2, Serialized) { If ((MSKN & 0x08)) { Local0 = Arg0 SFPI = Local0 Local0 = Arg1 SFPG = Local0 &= 0x03 CreateBitField (PSBR, 0x03, PFPS) PFPS = One Notify (VGA, 0x81) // Information Change } } Method (AFN4, 1, Serialized) { If ((MSKN & 0x10)) { Local0 = Arg0 Local1 = SSPS /* \_SB_.PCI0.PB2_.VGA_.SSPS */ SSPS = Local0 If ((Local0 == Local1)) {} Else { CreateBitField (PSBR, 0x04, PSPS) PSPS = One Notify (VGA, 0x81) // Information Change } } } Method (AFN5, 0, Serialized) { If ((MSKN & 0x20)) { CreateBitField (PSBR, 0x05, PDCC) PDCC = One Notify (VGA, 0x81) // Information Change } } Method (AFN6, 0, Serialized) { If ((MSKN & 0x40)) { CreateBitField (PSBR, 0x06, PXPS) PXPS = One Notify (VGA, 0x81) // Information Change } } Method (AF15, 0, NotSerialized) { P80H = 0xFF CreateWordField (ATIB, 0x02, DSZE) DSZE = 0x08 Acquire (^^^LPC0.PSMX, 0xFFFF) BCMD = 0x8D DID = 0x0F INFO = ATIB /* \_SB_.PCI0.PB2_.VGA_.ATIB */ BSMI (Zero) ATIB = INFO /* \INFO */ Release (^^^LPC0.PSMX) Return (ATIB) /* \_SB_.PCI0.PB2_.VGA_.ATIB */ } } 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 ((WKPM == One)) { Return (GPRW (0x08, 0x04)) } Else { Return (GPRW (0x08, Zero)) } } Name (_HPP, Package (0x04) // _HPP: Hot Plug Parameters { 0x10, 0x40, One, 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 (XPCB, PCI_Config, 0x58, 0x24) Field (XPCB, AnyAcc, NoLock, Preserve) { Offset (0x10), LKCN, 16, LKST, 16, Offset (0x1A), , 3, PDC3, 1, , 2, PDS3, 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 (XPEX, SystemMemory, 0xF8018100, 0x0100) Field (XPEX, DWordAcc, NoLock, Preserve) { Offset (0x28), VC0S, 32 } OperationRegion (PCFG, PCI_Config, Zero, 0x20) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32, Offset (0x18), SBUS, 32 } Method (XPDL, 0, NotSerialized) { If ((VC0S & 0x00020000)) { Return (Ones) } Else { Return (Zero) } } Method (XPRD, 1, NotSerialized) { XPIR = Arg0 Local0 = XPID /* \_SB_.PCI0.PB3_.XPID */ XPIR = Zero Return (Local0) } Method (XPWR, 2, NotSerialized) { XPIR = Arg0 XPID = Arg1 XPIR = Zero } Method (XPRT, 0, NotSerialized) { Local0 = XPRD (0xA2) Local0 &= 0xFFFFFFF8 Local1 = (Local0 >> 0x04) Local1 &= 0x07 Local0 |= Local1 Local0 |= 0x0100 XPWR (0xA2, Local0) } Method (XPLP, 1, NotSerialized) { Local0 = NBMR (0x08) Local0 >>= 0x08 Local0 &= 0x0F If (Local0) { Local1 = 0xF0F0 Local2 = NBXR (0x65) If (Arg0) { Local2 &= ~Local1 } Else { Local2 |= Local1 } NBXW (0x65, Local2) } } Method (XPLL, 1, NotSerialized) { Local0 = NBMR (0x08) Local0 >>= 0x08 Local0 &= 0x0F If (Local0) { Local2 = NBMR (0x07) If ((Local2 && 0x0201F000)) { Local1 = 0x00440040 Local3 = Local1 } Else { Local1 = 0x00550050 Local3 = Local1 Local2 = NBXR (0x65) If ((~Local2 && 0x0F0F)) { Local3 = 0x00440040 } } Local2 = NBMR (0x2E) If (Arg0) { Local2 &= ~Local1 } Else { Local2 |= Local3 } NBMW (0x2E, Local2) } } Method (XPR2, 0, NotSerialized) { Local0 = LKCN /* \_SB_.PCI0.PB3_.LKCN */ Local0 &= 0xFFFFFFDF LKCN = Local0 Local0 |= 0x20 LKCN = Local0 Local1 = 0x64 Local2 = One While ((Local1 && Local2)) { Sleep (One) Local3 = LKST /* \_SB_.PCI0.PB3_.LKST */ If ((Local3 & 0x0800)) { Local1-- } Else { Local2 = Zero } } Local0 &= 0xFFFFFFDF LKCN = Local0 If (!Local2) { Return (Ones) } Else { Return (Zero) } } Method (XPPB, 0, NotSerialized) { Local0 = _ADR /* \_SB_.PCI0.PB3_._ADR */ Local1 = (Local0 << 0x10) Local1 = (Local0 >> 0x03) Local2 = (Local0 & 0x0F) Local3 = (Local1 | Local2) Return (Local3) } Method (XPPR, 1, NotSerialized) { If (Arg0) { XPLL (One) XPLP (One) Sleep (0xC8) XPTR ((XPPB () << 0x03), One) Sleep (0x14) } Else { XPTR ((XPPB () << 0x03), Zero) XPLP (Zero) XPLL (Zero) } Return (Ones) } Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method { If ((XCMP (Arg0, ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */) == One)) { If ((Arg2 == Zero)) { Return (Buffer (One) { 0x2D /* - */ }) } If ((Arg2 == 0x02)) { P80H = 0xAA02 Return (Package (0x01) { Package (0x04) { 0x02, 0x80, Zero, 0x0C } }) } If ((Arg2 == 0x03)) { P80H = 0xAA03 Local0 = DerefOf (Arg3 [Zero]) If ((Local0 == 0x80)) { Return (Package (0x01) { Package (0x02) { "en", Unicode ("ATI XGP Slot") } }) } Else { Return (Package (0x01) { Package (0x02) { "en", Unicode ("Unknown") } }) } } If ((Arg2 == 0x05)) { If ((Arg1 == One)) { Return (One) } } Return (One) } Return (Buffer (One) { 0x00 /* . */ }) } 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 } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { If ((^^^AGP.PXMX != 0x80000000)) { Return (Zero) } Else { Return (One) } } Name (DOSA, Zero) Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching { DOSA = Arg0 } Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices { Name (DODL, Package (0x05) { 0x00010100, 0x00010110, 0x0200, 0x00010210, 0x00010220 }) Return (DODL) /* \_SB_.PCI0.PB3_.VGA_._DOD.DODL */ } Device (LCD) { Name (_ADR, 0x0110) // _ADR: Address Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels { Return (Package (0x0D) { 0x46, 0x28, Zero, 0x0A, 0x14, 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50, 0x5A, 0x64 }) } Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method { P80H = 0x35 Divide (Arg0, 0x0A, Local0, Local1) ^^^^LPC0.EC0.BRTS = Local1 } Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current { Local0 = (^^^^LPC0.EC0.BRTS * 0x0A) Return (Local0) } } Name (ATIB, Buffer (0x0100) {}) Method (ATIF, 2, Serialized) { If ((Arg0 == Zero)) { Return (AF00 ()) } If ((Arg0 == One)) { Return (AF01 ()) } If ((Arg0 == 0x02)) { Return (AF02 ()) } If ((Arg0 == 0x03)) { Return (AF03 (DerefOf (Arg1 [0x02]), DerefOf (Arg1 [0x04]))) } If ((Arg0 == 0x0F)) { Return (AF15 ()) } Else { CreateWordField (ATIB, Zero, SSZE) CreateWordField (ATIB, 0x02, VERN) CreateDWordField (ATIB, 0x04, NMSK) CreateDWordField (ATIB, 0x08, SFUN) SSZE = Zero VERN = Zero NMSK = Zero SFUN = Zero Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.ATIB */ } } Method (AF00, 0, NotSerialized) { CreateWordField (ATIB, Zero, SSZE) CreateWordField (ATIB, 0x02, VERN) CreateDWordField (ATIB, 0x04, NMSK) CreateDWordField (ATIB, 0x08, SFUN) SSZE = 0x0C VERN = One If ((^^^AGP.PXEN == 0x80000000)) { NMSK = 0x11 } Else { NMSK = 0x51 } MSKN = NMSK /* \_SB_.PCI0.PB3_.VGA_.AF00.NMSK */ SFUN = 0x4007 Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.ATIB */ } Method (AF01, 0, NotSerialized) { CreateWordField (ATIB, Zero, SSZE) CreateDWordField (ATIB, 0x02, VMSK) CreateDWordField (ATIB, 0x06, FLGS) SSZE = 0x0A VMSK = 0x0B SSZE = 0x0A FLGS = 0x0B Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.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) SSZE = 0x0C PSBI = PSBR /* \_SB_.PCI0.PB3_.VGA_.PSBR */ If (PDSW) { PDSW = Zero } If (PEXM) { EXPM = SEXM /* \_SB_.PCI0.PB3_.VGA_.SEXM */ SEXM = Zero PEXM = Zero } If (PTHR) { THRM = STHG /* \_SB_.PCI0.PB3_.VGA_.STHG */ THID = STHI /* \_SB_.PCI0.PB3_.VGA_.STHI */ STHG = Zero STHI = Zero PTHR = Zero } If (PFPS) { FPWR = SFPG /* \_SB_.PCI0.PB3_.VGA_.SFPG */ FPWR = SFPI /* \_SB_.PCI0.PB3_.VGA_.SFPI */ SFPG = Zero SFPI = Zero PFPS = Zero } If (PSPS) { SPWR = SSPS /* \_SB_.PCI0.PB3_.VGA_.SSPS */ PSPS = Zero } If (PXPS) { PXPS = Zero } Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.ATIB */ } Method (AF03, 2, NotSerialized) { CreateWordField (ATIB, Zero, SSZE) CreateWordField (ATIB, 0x02, SSDP) CreateWordField (ATIB, 0x04, SCDP) SSDP = Arg0 SCDP = Arg1 Name (NXTD, 0x06) Name (CIDX, 0x06) Local1 = SSDP /* \_SB_.PCI0.PB3_.VGA_.AF03.SSDP */ Local1 &= 0x8B Local2 = SCDP /* \_SB_.PCI0.PB3_.VGA_.AF03.SCDP */ If (CondRefOf (^^^^LID._LID, Local4)) { Local2 &= 0xFFFFFFFE Local2 |= ^^^^LID._LID () } Else { Local2 |= One } P80H = Local2 Local0 = Zero While ((Local0 < SizeOf (SACT))) { Local3 = DerefOf (SACT [Local0]) If ((Local3 == Local1)) { CIDX = Local0 Local0 = SizeOf (SACT) } Else { Local0++ } } Local0 = CIDX /* \_SB_.PCI0.PB3_.VGA_.AF03.CIDX */ While ((Local0 < SizeOf (SACT))) { Local0++ If ((Local0 == SizeOf (SACT))) { Local0 = Zero } Local3 = DerefOf (SACT [Local0]) If (((Local3 & Local2) == Local3)) { NXTD = Local0 Local0 = SizeOf (SACT) } } If ((NXTD == SizeOf (SACT))) { SSDP = Zero } Else { Local0 = NXTD /* \_SB_.PCI0.PB3_.VGA_.AF03.NXTD */ Local3 = DerefOf (SACT [Local0]) SSDP &= 0xFFFFFFF4 SSDP |= Local3 } SSZE = 0x04 P80H = SSDP /* \_SB_.PCI0.PB3_.VGA_.AF03.SSDP */ Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.ATIB */ } Method (AFN0, 0, Serialized) { If ((MSKN & One)) { CreateBitField (PSBR, Zero, PDSW) PDSW = One Notify (VGA, 0x81) // Information Change } } Method (AFN3, 2, Serialized) { If ((MSKN & 0x08)) { Local0 = Arg0 SFPI = Local0 Local0 = Arg1 SFPG = Local0 &= 0x03 CreateBitField (PSBR, 0x03, PFPS) PFPS = One Notify (VGA, 0x81) // Information Change } } Method (AFN4, 1, Serialized) { If ((MSKN & 0x10)) { Local0 = Arg0 Local1 = SSPS /* \_SB_.PCI0.PB3_.VGA_.SSPS */ SSPS = Local0 If ((Local0 == Local1)) {} Else { CreateBitField (PSBR, 0x04, PSPS) PSPS = One Notify (VGA, 0x81) // Information Change } } } Method (AFN5, 0, Serialized) { If ((MSKN & 0x20)) { CreateBitField (PSBR, 0x05, PDCC) PDCC = One Notify (VGA, 0x81) // Information Change } } Method (AFN6, 0, Serialized) { If ((MSKN & 0x40)) { CreateBitField (PSBR, 0x06, PXPS) PXPS = One Notify (VGA, 0x81) // Information Change } } Method (AF15, 0, NotSerialized) { P80H = 0xFF CreateWordField (ATIB, 0x02, DSZE) DSZE = 0x08 Acquire (^^^LPC0.PSMX, 0xFFFF) BCMD = 0x8D DID = 0x0F INFO = ATIB /* \_SB_.PCI0.PB3_.VGA_.ATIB */ BSMI (Zero) ATIB = INFO /* \INFO */ Release (^^^LPC0.PSMX) Return (ATIB) /* \_SB_.PCI0.PB3_.VGA_.ATIB */ } } 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 (PB4) { Name (_ADR, 0x00040000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x05)) } Else { Return (GPRW (0x08, Zero)) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) } } OperationRegion (XPCB, PCI_Config, 0x58, 0x24) Field (XPCB, ByteAcc, NoLock, Preserve) { Offset (0x10), LKCN, 16, LKST, 16, Offset (0x1A), , 3, PDC4, 1, , 2, PDS4, 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 (XPEX, SystemMemory, 0xF8020100, 0x0100) Field (XPEX, DWordAcc, NoLock, Preserve) { Offset (0x28), VC0S, 32 } OperationRegion (PCFG, PCI_Config, Zero, 0x20) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32, Offset (0x18), SBUS, 32 } Method (XPDL, 0, NotSerialized) { Local0 = Zero If ((VC0S & 0x00020000)) { Local0 = Ones } Return (Local0) } Method (XPRD, 1, NotSerialized) { XPIR = Arg0 Local0 = XPID /* \_SB_.PCI0.PB4_.XPID */ XPIR = Zero Return (Local0) } Method (XPWR, 2, NotSerialized) { XPIR = Arg0 XPID = Arg1 XPIR = Zero } Method (XPRT, 0, NotSerialized) { Local0 = XPRD (0xA2) Local0 &= 0xFFFFFFF8 Local1 = (Local0 >> 0x04) Local1 &= 0x07 Local0 |= Local1 Local0 |= 0x0100 XPWR (0xA2, Local0) } Method (XPLP, 1, NotSerialized) { Local1 = 0x1010 Local2 = NBXR (0x00010065) If (Arg0) { Local2 &= ~Local1 } Else { Local2 |= Local1 } NBXW (0x00010065, Local2) } Method (XPR2, 0, NotSerialized) { Local0 = LKCN /* \_SB_.PCI0.PB4_.LKCN */ Local0 &= 0xFFFFFFDF LKCN = Local0 Local0 |= 0x20 LKCN = Local0 Local1 = 0x64 Local2 = One While ((Local1 && Local2)) { Sleep (One) Local3 = LKST /* \_SB_.PCI0.PB4_.LKST */ If ((Local3 & 0x0800)) { Local1-- } Else { Local2 = Zero } } Local0 &= 0xFFFFFFDF LKCN = Local0 If (!Local2) { Return (Ones) } Else { Return (Zero) } } Method (GFXM, 0, NotSerialized) { Local0 = NBMR (0x08) Local0 >>= 0x08 Local0 &= 0x0F Return (Local0) } Method (XPLL, 1, NotSerialized) { Local0 = GFXM () Local1 = XPPB () Local2 = Zero If ((0x10 == Local1)) { Local2 = One Local3 = 0x00770070 If (Local0) { Local3 = 0x00330030 } } If (((0x18 == Local1) && Local0)) { Local2 = One Local3 = 0x00440040 } Local0 = NBMR (0x07) Local1 = NBXR (0x65) If ((Local0 && 0x0201F000)) { Local4 = 0x00440040 Local5 = Local4 If ((~Local1 && 0xF0F0)) { Local5 = Zero } } Else { Local4 = 0x00110010 Local5 = Local4 If ((~Local1 && 0x0F0F)) { Local5 = Zero } } If (Local2) { Local6 = (Local3 | Local4) Local0 = (Local5 & Local4) Local7 = (Local3 | Local0) Local0 = NBMR (0x2E) If (Arg0) { Local0 &= ~Local6 } Else { Local0 |= Local7 } NBMW (0x2E, Local0) } } Method (XPPB, 0, NotSerialized) { Local0 = _ADR /* \_SB_.PCI0.PB4_._ADR */ Local1 = (Local0 << 0x10) Local1 = (Local0 >> 0x03) Local2 = (Local0 & 0x0F) Local3 = (Local1 | Local2) Return (Local3) } Method (XPPR, 1, NotSerialized) { If (Arg0) { XPLL (One) XPLP (One) Sleep (0xC8) XPTR ((XPPB () << 0x03), One) Sleep (0x14) } Else { XPTR ((XPPB () << 0x03), Zero) XPLP (Zero) XPLL (Zero) } Return (Ones) } Device (XPDV) { Name (_ADR, Zero) // _ADR: Address OperationRegion (PCFG, PCI_Config, Zero, 0xFF) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32, Offset (0xDC), DISF, 32 } } } Device (PB5) { Name (_ADR, 0x00050000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x05)) } Else { Return (GPRW (0x08, Zero)) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0xFFFF, One, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x10 } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKB, Zero }, Package (0x04) { 0xFFFF, One, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKA, Zero } }) } } OperationRegion (XPEX, SystemMemory, 0xF8020100, 0x0100) Field (XPEX, DWordAcc, NoLock, Preserve) { Offset (0x28), VC0S, 32 } OperationRegion (PCFG, PCI_Config, Zero, 0x20) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32, Offset (0x18), SBUS, 32 } OperationRegion (XPCB, PCI_Config, 0x58, 0x24) Field (XPCB, AnyAcc, NoLock, Preserve) { Offset (0x10), LKCN, 16, LKST, 16, Offset (0x1A), , 3, PSDC, 1, , 2, PSDS, 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 } Method (XPDL, 0, NotSerialized) { Local0 = Zero If ((VC0S & 0x00020000)) { Local0 = Ones } Return (Local0) } Method (XPRD, 1, NotSerialized) { XPIR = Arg0 Local0 = XPID /* \_SB_.PCI0.PB5_.XPID */ XPIR = Zero Return (Local0) } Method (XPWR, 2, NotSerialized) { XPIR = Arg0 XPID = Arg1 XPIR = Zero } Method (XPRT, 0, NotSerialized) { Local0 = XPRD (0xA2) Local0 &= 0xFFFFFFF8 Local1 = (Local0 >> 0x04) Local1 &= 0x07 Local0 |= Local1 Local0 |= 0x0100 XPWR (0xA2, Local0) } Method (XPPB, 0, NotSerialized) { Local0 = _ADR /* \_SB_.PCI0.PB5_._ADR */ Local1 = (Local0 >> 0x10) Local1 = (Local1 << 0x03) Local2 = (Local0 & 0x0F) Local3 = (Local1 | Local2) Return (Local3) } Method (XPCN, 0, NotSerialized) { Local1 = Zero Local0 = XPPB () If ((0x04 > Local0)) { Local1 = Zero } If ((0x08 > Local0)) { Local1 = 0x00010000 } If ((0x0B > Local0)) { Local1 = 0x00020000 } Return (Local1) } Method (XPPD, 0, NotSerialized) { Local0 = XPPB () Local2 = GPPX () Local3 = GFXM () Local1 = Zero If ((0x10 == Local0)) { Local1 = 0xFFFF If (Local3) { Local1 = 0x0F0F } } If ((0x18 == Local0)) { Local1 = 0xF0F0 } If ((0x20 == Local0)) { Local1 = 0x1010 } If ((0x28 == Local0)) { Local1 = 0x2020 } If ((0x30 == Local0)) { Local1 = 0x4040 } If ((0x38 == Local0)) { Local1 = 0x8080 } If ((0x48 == Local0)) { Local1 = Zero If ((0x02 == Local2)) { Local1 = 0x0303 } If ((0x03 == Local2)) { Local1 = 0x0101 } } If ((0x50 == Local0)) { Local1 = Zero If ((0x03 == Local2)) { Local1 = 0x0202 } } Return (Local1) } Method (XPLP, 1, NotSerialized) { Local1 = XPPD () If ((Zero != Local1)) { Local2 = NBXR ((0x65 + XPCN ())) If (Arg0) { Local2 &= ~Local1 } Else { Local2 |= Local1 } NBXW ((0x65 + XPCN ()), Local2) } } Method (XPR2, 0, NotSerialized) { Local0 = LKCN /* \_SB_.PCI0.PB5_.LKCN */ Local0 &= 0xFFFFFFDF LKCN = Local0 Local0 |= 0x20 LKCN = Local0 Local1 = 0x64 Local2 = One While ((Local1 && Local2)) { Sleep (One) Local3 = LKST /* \_SB_.PCI0.PB5_.LKST */ If ((Local3 & 0x0800)) { Local1-- } Else { Local2 = Zero } } Local0 &= 0xFFFFFFDF LKCN = Local0 If (!Local2) { Return (Ones) } Else { Return (Zero) } } Method (XPLL, 1, NotSerialized) { Local0 = GFXM () Local1 = XPPB () Local2 = Zero If ((0x10 == Local1)) { Local2 = One Local3 = 0x00770070 If (Local0) { Local3 = 0x00330030 } } If (((0x18 == Local1) && Local0)) { Local2 = One Local3 = 0x00440040 } Local0 = NBMR (0x07) Local1 = NBXR (0x65) If ((Local0 && 0x0201F000)) { Local4 = 0x00440040 Local5 = Local4 If ((~Local1 && 0xF0F0)) { Local5 = Zero } } Else { Local4 = 0x00110010 Local5 = Local4 If ((~Local1 && 0x0F0F)) { Local5 = Zero } } If (Local2) { Local6 = (Local3 | Local4) Local0 = (Local5 & Local4) Local7 = (Local3 | Local0) Local0 = NBMR (0x2E) If (Arg0) { Local0 &= ~Local6 } Else { Local0 |= Local7 } NBMW (0x2E, Local0) } } Method (XPPR, 1, NotSerialized) { If (Arg0) { XPLL (One) XPLP (One) Sleep (0xC8) XPTR ((XPPB () << 0x03), One) Sleep (0x14) } Else { XPTR ((XPPB () << 0x03), Zero) XPLP (Zero) XPLL (Zero) } Return (Ones) } Device (XPDV) { Name (_ADR, Zero) // _ADR: Address OperationRegion (PCFG, PCI_Config, Zero, 0x08) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32 } } } Device (PB6) { Name (_ADR, 0x00060000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x05)) } Else { Return (GPRW (0x08, Zero)) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC) { Return (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 } }) } Else { Return (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 } }) } } OperationRegion (XPEX, SystemMemory, 0xF8020100, 0x0100) Field (XPEX, DWordAcc, NoLock, Preserve) { Offset (0x28), VC0S, 32 } OperationRegion (PCFG, PCI_Config, Zero, 0x20) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32, Offset (0x18), SBUS, 32 } OperationRegion (XPCB, PCI_Config, 0x58, 0x24) Field (XPCB, AnyAcc, NoLock, Preserve) { Offset (0x10), LKCN, 16, LKST, 16, Offset (0x1A), , 3, PSDC, 1, , 2, PSDS, 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 } Method (XPDL, 0, NotSerialized) { Local0 = Zero If ((VC0S & 0x00020000)) { Local0 = Ones } Return (Local0) } Method (XPRD, 1, NotSerialized) { XPIR = Arg0 Local0 = XPID /* \_SB_.PCI0.PB6_.XPID */ XPIR = Zero Return (Local0) } Method (XPWR, 2, NotSerialized) { XPIR = Arg0 XPID = Arg1 XPIR = Zero } Method (XPRT, 0, NotSerialized) { Local0 = XPRD (0xA2) Local0 &= 0xFFFFFFF8 Local1 = (Local0 >> 0x04) Local1 &= 0x07 Local0 |= Local1 Local0 |= 0x0100 XPWR (0xA2, Local0) } Method (XPPB, 0, NotSerialized) { Local0 = _ADR /* \_SB_.PCI0.PB6_._ADR */ Local1 = (Local0 >> 0x10) Local1 = (Local1 << 0x03) Local2 = (Local0 & 0x0F) Local3 = (Local1 | Local2) Return (Local3) } Method (XPCN, 0, NotSerialized) { Local1 = Zero Local0 = XPPB () If ((0x04 > Local0)) { Local1 = Zero } If ((0x08 > Local0)) { Local1 = 0x00010000 } If ((0x0B > Local0)) { Local1 = 0x00020000 } Return (Local1) } Method (XPPD, 0, NotSerialized) { Local0 = XPPB () Local2 = GPPX () Local3 = GFXM () Local1 = Zero If ((0x10 == Local0)) { Local1 = 0xFFFF If (Local3) { Local1 = 0x0F0F } } If ((0x18 == Local0)) { Local1 = 0xF0F0 } If ((0x20 == Local0)) { Local1 = 0x1010 } If ((0x28 == Local0)) { Local1 = 0x2020 } If ((0x30 == Local0)) { Local1 = 0x4040 } If ((0x38 == Local0)) { Local1 = 0x8080 } If ((0x48 == Local0)) { Local1 = Zero If ((0x02 == Local2)) { Local1 = 0x0303 } If ((0x03 == Local2)) { Local1 = 0x0101 } } If ((0x50 == Local0)) { Local1 = Zero If ((0x03 == Local2)) { Local1 = 0x0202 } } Return (Local1) } Method (XPLP, 1, NotSerialized) { Local1 = XPPD () If ((Zero != Local1)) { Local2 = NBXR ((0x65 + XPCN ())) If (Arg0) { Local2 &= ~Local1 } Else { Local2 |= Local1 } NBXW ((0x65 + XPCN ()), Local2) } } Method (XPR2, 0, NotSerialized) { Local0 = LKCN /* \_SB_.PCI0.PB6_.LKCN */ Local0 &= 0xFFFFFFDF LKCN = Local0 Local0 |= 0x20 LKCN = Local0 Local1 = 0x64 Local2 = One While ((Local1 && Local2)) { Sleep (One) Local3 = LKST /* \_SB_.PCI0.PB6_.LKST */ If ((Local3 & 0x0800)) { Local1-- } Else { Local2 = Zero } } Local0 &= 0xFFFFFFDF LKCN = Local0 If (!Local2) { Return (Ones) } Else { Return (Zero) } } Method (XPLL, 1, NotSerialized) { Local0 = GFXM () Local1 = XPPB () Local2 = Zero If ((0x10 == Local1)) { Local2 = One Local3 = 0x00770070 If (Local0) { Local3 = 0x00330030 } } If (((0x18 == Local1) && Local0)) { Local2 = One Local3 = 0x00440040 } Local0 = NBMR (0x07) Local1 = NBXR (0x65) If ((Local0 && 0x0201F000)) { Local4 = 0x00440040 Local5 = Local4 If ((~Local1 && 0xF0F0)) { Local5 = Zero } } Else { Local4 = 0x00110010 Local5 = Local4 If ((~Local1 && 0x0F0F)) { Local5 = Zero } } If (Local2) { Local6 = (Local3 | Local4) Local0 = (Local5 & Local4) Local7 = (Local3 | Local0) Local0 = NBMR (0x2E) If (Arg0) { Local0 &= ~Local6 } Else { Local0 |= Local7 } NBMW (0x2E, Local0) } } Method (XPPR, 1, NotSerialized) { If (Arg0) { XPLL (One) XPLP (One) Sleep (0xC8) XPTR ((XPPB () << 0x03), One) Sleep (0x14) } Else { XPTR ((XPPB () << 0x03), Zero) XPLP (Zero) XPLL (Zero) } Return (Ones) } Device (XPDV) { Name (_ADR, Zero) // _ADR: Address OperationRegion (PCFG, PCI_Config, Zero, 0x08) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32 } } } Device (PB7) { Name (_ADR, 0x00070000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x05)) } 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, 0xF8020100, 0x0100) Field (XPEX, DWordAcc, NoLock, Preserve) { Offset (0x28), VC0S, 32 } OperationRegion (PCFG, PCI_Config, Zero, 0x20) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32, Offset (0x18), SBUS, 32 } OperationRegion (XPCB, PCI_Config, 0x58, 0x24) Field (XPCB, AnyAcc, NoLock, Preserve) { Offset (0x10), LKCN, 16, LKST, 16, Offset (0x1A), , 3, PSDC, 1, , 2, PSDS, 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 } Method (XPDL, 0, NotSerialized) { Local0 = Zero If ((VC0S & 0x00020000)) { Local0 = Ones } Return (Local0) } Method (XPRD, 1, NotSerialized) { XPIR = Arg0 Local0 = XPID /* \_SB_.PCI0.PB7_.XPID */ XPIR = Zero Return (Local0) } Method (XPWR, 2, NotSerialized) { XPIR = Arg0 XPID = Arg1 XPIR = Zero } Method (XPRT, 0, NotSerialized) { Local0 = XPRD (0xA2) Local0 &= 0xFFFFFFF8 Local1 = (Local0 >> 0x04) Local1 &= 0x07 Local0 |= Local1 Local0 |= 0x0100 XPWR (0xA2, Local0) } Method (XPPB, 0, NotSerialized) { Local0 = _ADR /* \_SB_.PCI0.PB7_._ADR */ Local1 = (Local0 >> 0x10) Local1 = (Local1 << 0x03) Local2 = (Local0 & 0x0F) Local3 = (Local1 | Local2) Return (Local3) } Method (XPCN, 0, NotSerialized) { Local1 = Zero Local0 = XPPB () If ((0x04 > Local0)) { Local1 = Zero } If ((0x08 > Local0)) { Local1 = 0x00010000 } If ((0x0B > Local0)) { Local1 = 0x00020000 } Return (Local1) } Method (XPPD, 0, NotSerialized) { Local0 = XPPB () Local2 = GPPX () Local3 = GFXM () Local1 = Zero If ((0x10 == Local0)) { Local1 = 0xFFFF If (Local3) { Local1 = 0x0F0F } } If ((0x18 == Local0)) { Local1 = 0xF0F0 } If ((0x20 == Local0)) { Local1 = 0x1010 } If ((0x28 == Local0)) { Local1 = 0x2020 } If ((0x30 == Local0)) { Local1 = 0x4040 } If ((0x38 == Local0)) { Local1 = 0x8080 } If ((0x48 == Local0)) { Local1 = Zero If ((0x02 == Local2)) { Local1 = 0x0303 } If ((0x03 == Local2)) { Local1 = 0x0101 } } If ((0x50 == Local0)) { Local1 = Zero If ((0x03 == Local2)) { Local1 = 0x0202 } } Return (Local1) } Method (XPLP, 1, NotSerialized) { Local1 = XPPD () If ((Zero != Local1)) { Local2 = NBXR ((0x65 + XPCN ())) If (Arg0) { Local2 &= ~Local1 } Else { Local2 |= Local1 } NBXW ((0x65 + XPCN ()), Local2) } } Method (XPR2, 0, NotSerialized) { Local0 = LKCN /* \_SB_.PCI0.PB7_.LKCN */ Local0 &= 0xFFFFFFDF LKCN = Local0 Local0 |= 0x20 LKCN = Local0 Local1 = 0x64 Local2 = One While ((Local1 && Local2)) { Sleep (One) Local3 = LKST /* \_SB_.PCI0.PB7_.LKST */ If ((Local3 & 0x0800)) { Local1-- } Else { Local2 = Zero } } Local0 &= 0xFFFFFFDF LKCN = Local0 If (!Local2) { Return (Ones) } Else { Return (Zero) } } Method (XPLL, 1, NotSerialized) { Local0 = GFXM () Local1 = XPPB () Local2 = Zero If ((0x10 == Local1)) { Local2 = One Local3 = 0x00770070 If (Local0) { Local3 = 0x00330030 } } If (((0x18 == Local1) && Local0)) { Local2 = One Local3 = 0x00440040 } Local0 = NBMR (0x07) Local1 = NBXR (0x65) If ((Local0 && 0x0201F000)) { Local4 = 0x00440040 Local5 = Local4 If ((~Local1 && 0xF0F0)) { Local5 = Zero } } Else { Local4 = 0x00110010 Local5 = Local4 If ((~Local1 && 0x0F0F)) { Local5 = Zero } } If (Local2) { Local6 = (Local3 | Local4) Local0 = (Local5 & Local4) Local7 = (Local3 | Local0) Local0 = NBMR (0x2E) If (Arg0) { Local0 &= ~Local6 } Else { Local0 |= Local7 } NBMW (0x2E, Local0) } } Method (XPPR, 1, NotSerialized) { If (Arg0) { XPLL (One) XPLP (One) Sleep (0xC8) XPTR ((XPPB () << 0x03), One) Sleep (0x14) } Else { XPTR ((XPPB () << 0x03), Zero) XPLP (Zero) XPLL (Zero) } Return (Ones) } Device (XPDV) { Name (_ADR, Zero) // _ADR: Address OperationRegion (PCFG, PCI_Config, Zero, 0x08) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32 } } } Device (PB9) { Name (_ADR, 0x00090000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x05)) } Else { Return (GPRW (0x08, Zero)) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0xFFFF, One, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x10 } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKB, Zero }, Package (0x04) { 0xFFFF, One, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKA, Zero } }) } } OperationRegion (XPEX, SystemMemory, 0xF8020100, 0x0100) Field (XPEX, DWordAcc, NoLock, Preserve) { Offset (0x28), VC0S, 32 } OperationRegion (PCFG, PCI_Config, Zero, 0x20) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32, Offset (0x18), SBUS, 32 } OperationRegion (XPCB, PCI_Config, 0x58, 0x24) Field (XPCB, AnyAcc, NoLock, Preserve) { Offset (0x10), LKCN, 16, LKST, 16, Offset (0x1A), , 3, PSDC, 1, , 2, PSDS, 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 } Method (XPDL, 0, NotSerialized) { Local0 = Zero If ((VC0S & 0x00020000)) { Local0 = Ones } Return (Local0) } Method (XPRD, 1, NotSerialized) { XPIR = Arg0 Local0 = XPID /* \_SB_.PCI0.PB9_.XPID */ XPIR = Zero Return (Local0) } Method (XPWR, 2, NotSerialized) { XPIR = Arg0 XPID = Arg1 XPIR = Zero } Method (XPRT, 0, NotSerialized) { Local0 = XPRD (0xA2) Local0 &= 0xFFFFFFF8 Local1 = (Local0 >> 0x04) Local1 &= 0x07 Local0 |= Local1 Local0 |= 0x0100 XPWR (0xA2, Local0) } Method (XPPB, 0, NotSerialized) { Local0 = _ADR /* \_SB_.PCI0.PB9_._ADR */ Local1 = (Local0 >> 0x10) Local1 = (Local1 << 0x03) Local2 = (Local0 & 0x0F) Local3 = (Local1 | Local2) Return (Local3) } Method (XPCN, 0, NotSerialized) { Local1 = Zero Local0 = XPPB () If ((0x04 > Local0)) { Local1 = Zero } If ((0x08 > Local0)) { Local1 = 0x00010000 } If ((0x0B > Local0)) { Local1 = 0x00020000 } Return (Local1) } Method (XPPD, 0, NotSerialized) { Local0 = XPPB () Local2 = GPPX () Local3 = GFXM () Local1 = Zero If ((0x10 == Local0)) { Local1 = 0xFFFF If (Local3) { Local1 = 0x0F0F } } If ((0x18 == Local0)) { Local1 = 0xF0F0 } If ((0x20 == Local0)) { Local1 = 0x1010 } If ((0x28 == Local0)) { Local1 = 0x2020 } If ((0x30 == Local0)) { Local1 = 0x4040 } If ((0x38 == Local0)) { Local1 = 0x8080 } If ((0x48 == Local0)) { Local1 = Zero If ((0x02 == Local2)) { Local1 = 0x0303 } If ((0x03 == Local2)) { Local1 = 0x0101 } } If ((0x50 == Local0)) { Local1 = Zero If ((0x03 == Local2)) { Local1 = 0x0202 } } Return (Local1) } Method (XPLP, 1, NotSerialized) { Local1 = XPPD () If ((Zero != Local1)) { Local2 = NBXR ((0x65 + XPCN ())) If (Arg0) { Local2 &= ~Local1 } Else { Local2 |= Local1 } NBXW ((0x65 + XPCN ()), Local2) } } Method (XPR2, 0, NotSerialized) { Local0 = LKCN /* \_SB_.PCI0.PB9_.LKCN */ Local0 &= 0xFFFFFFDF LKCN = Local0 Local0 |= 0x20 LKCN = Local0 Local1 = 0x64 Local2 = One While ((Local1 && Local2)) { Sleep (One) Local3 = LKST /* \_SB_.PCI0.PB9_.LKST */ If ((Local3 & 0x0800)) { Local1-- } Else { Local2 = Zero } } Local0 &= 0xFFFFFFDF LKCN = Local0 If (!Local2) { Return (Ones) } Else { Return (Zero) } } Method (XPLL, 1, NotSerialized) { Local0 = GFXM () Local1 = XPPB () Local2 = Zero If ((0x10 == Local1)) { Local2 = One Local3 = 0x00770070 If (Local0) { Local3 = 0x00330030 } } If (((0x18 == Local1) && Local0)) { Local2 = One Local3 = 0x00440040 } Local0 = NBMR (0x07) Local1 = NBXR (0x65) If ((Local0 && 0x0201F000)) { Local4 = 0x00440040 Local5 = Local4 If ((~Local1 && 0xF0F0)) { Local5 = Zero } } Else { Local4 = 0x00110010 Local5 = Local4 If ((~Local1 && 0x0F0F)) { Local5 = Zero } } If (Local2) { Local6 = (Local3 | Local4) Local0 = (Local5 & Local4) Local7 = (Local3 | Local0) Local0 = NBMR (0x2E) If (Arg0) { Local0 &= ~Local6 } Else { Local0 |= Local7 } NBMW (0x2E, Local0) } } Method (XPPR, 1, NotSerialized) { If (Arg0) { XPLL (One) XPLP (One) Sleep (0xC8) XPTR ((XPPB () << 0x03), One) Sleep (0x14) } Else { XPTR ((XPPB () << 0x03), Zero) XPLP (Zero) XPLL (Zero) } Return (Ones) } Device (XPDV) { Name (_ADR, Zero) // _ADR: Address OperationRegion (PCFG, PCI_Config, Zero, 0x08) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32 } } } Device (PB10) { Name (_ADR, 0x000A0000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x08, 0x05)) } Else { Return (GPRW (0x08, Zero)) } } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC) { Return (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 } }) } Else { Return (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 } }) } } } Device (SPB0) { Name (_ADR, 0x00150000) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x08, 0x04 }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) } } Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method { If ((XCMP (Arg0, ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */) == One)) { If ((Arg2 == Zero)) { Return (Buffer (One) { 0x21 /* ! */ }) } If ((Arg2 == 0x05)) { If ((Arg1 == One)) { Return (One) } } Return (One) } Return (Buffer (One) { 0x00 /* . */ }) } Method (XPPB, 0, NotSerialized) { Local0 = _ADR /* \_SB_.PCI0.SPB0._ADR */ Local1 = (Local0 >> 0x10) Local2 = (Local1 << 0x03) Local1 = (Local0 & 0x0F) Local3 = (Local1 | Local2) Return (Local3) } Device (NCRD) { Name (_ADR, Zero) // _ADR: Address OperationRegion (PCFG, PCI_Config, Zero, 0x08) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32 } } } Device (SPB1) { Name (_ADR, 0x00150001) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x18, 0x04 }) Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0xFFFF, One, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x10 } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKB, Zero }, Package (0x04) { 0xFFFF, One, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKA, Zero } }) } } Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method { If ((XCMP (Arg0, ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */) == One)) { If ((Arg2 == Zero)) { Return (Buffer (One) { 0x21 /* ! */ }) } If ((Arg2 == 0x05)) { If ((Arg1 == One)) { Return (One) } } Return (One) } Return (Buffer (One) { 0x00 /* . */ }) } Method (XPPB, 0, NotSerialized) { Local0 = _ADR /* \_SB_.PCI0.SPB1._ADR */ Local1 = (Local0 >> 0x10) Local2 = (Local1 << 0x03) Local1 = (Local0 & 0x0F) Local3 = (Local1 | Local2) Return (Local3) } OperationRegion (PCFG, PCI_Config, Zero, 0x20) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32, Offset (0x18), SBUS, 32 } Device (XPDV) { Name (_ADR, Zero) // _ADR: Address OperationRegion (PCFG, PCI_Config, Zero, 0x08) Field (PCFG, DWordAcc, NoLock, Preserve) { DVID, 32, PCMS, 32 } } } Device (HPET) { Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If ((^^SMBS.HPAD && Ones)) { If ((WNOS == 0x05)) { Return (0x0F) } } Return (Zero) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BUF0, ResourceTemplate () { IRQNoFlags () {0} IRQNoFlags () {8} Memory32Fixed (ReadOnly, 0xFED00000, // Address Base 0x00000400, // Address Length _Y05) }) CreateDWordField (BUF0, \_SB.PCI0.HPET._CRS._Y05._BAS, HPEB) // _BAS: Base Address Local0 = ^^SMBS.HPAD /* \_SB_.PCI0.SMBS.HPAD */ HPEB = (Local0 & 0xFFFFFFC0) Return (BUF0) /* \_SB_.PCI0.HPET._CRS.BUF0 */ } } Device (AZAL) { Name (_ADR, 0x00140002) // _ADR: Address } Device (GEC) { Name (_ADR, 0x00140006) // _ADR: Address Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x1A, 0x04 }) } Device (USB0) { Name (_ADR, 0x00120000) // _ADR: Address OperationRegion (U0CS, PCI_Config, 0xC4, 0x04) Field (U0CS, DWordAcc, NoLock, Preserve) { U0EN, 2 } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x18, 0x03)) } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { Return (0x02) } Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State { Return (0x02) } } Device (USB1) { Name (_ADR, 0x00130000) // _ADR: Address OperationRegion (U1CS, PCI_Config, 0xC4, 0x04) Field (U1CS, DWordAcc, NoLock, Preserve) { U1EN, 2 } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { Return (0x02) } Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State { Return (0x02) } } Device (USB2) { Name (_ADR, 0x00160000) // _ADR: Address OperationRegion (U2CS, PCI_Config, 0xC4, 0x04) Field (U2CS, DWordAcc, NoLock, Preserve) { U2EN, 2 } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x18, 0x03)) } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { Return (0x02) } Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State { Return (0x02) } } Device (USB3) { Name (_ADR, 0x00140005) // _ADR: Address OperationRegion (U3CS, PCI_Config, 0xC4, 0x04) Field (U3CS, DWordAcc, NoLock, Preserve) { U3EN, 2 } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { Return (0x02) } Method (_S4D, 0, NotSerialized) // _S4D: S4 Device State { Return (0x02) } } Device (USB4) { Name (_ADR, 0x00120002) // _ADR: Address } Device (USB5) { Name (_ADR, 0x00130002) // _ADR: Address } Device (USB6) { Name (_ADR, 0x00160002) // _ADR: Address } Scope (USB0) { Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (PRT3) { Name (_ADR, 0x03) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, Zero, Zero }) Name (_PLD, ToPLD () // _PLD: Physical Location of Device } } Scope (USB1) { Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (PRT1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, Zero, Zero }) Name (_PLD, ToPLD () // _PLD: Physical Location of Device } Device (PRT2)