/* * 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) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, Zero, Zero }) Name (_PLD, ToPLD () // _PLD: Physical Location of Device } } } Scope (USB2) { 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) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, Zero, Zero }) Name (_PLD, ToPLD () // _PLD: Physical Location of Device } } } Scope (USB5) { 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) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, Zero, Zero }) Name (_PLD, ToPLD () // _PLD: Physical Location of Device } } } Scope (USB6) { 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) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0xFF, Zero, Zero }) Name (_PLD, ToPLD () // _PLD: Physical Location of Device } } } Device (SMBS) { Name (_ADR, 0x00140000) // _ADR: Address OperationRegion (IRQF, PCI_Config, Zero, 0x0100) Field (IRQF, AnyAcc, NoLock, Preserve) { Offset (0x08), RVID, 8, Offset (0x62), IRQK, 1, IRQM, 1, Offset (0x63), Offset (0xAD), SA1E, 1, , 3, SA2E, 1, Offset (0xB4), HPAD, 32, Offset (0xE1), , 6, ACIR, 1, Offset (0xF8), EIDX, 8, Offset (0xFC), EDAT, 32 } OperationRegion (PMIO, SystemIO, 0x0CD6, 0x02) Field (PMIO, ByteAcc, NoLock, Preserve) { INPM, 8, DAPM, 8 } IndexField (INPM, DAPM, ByteAcc, NoLock, Preserve) { Offset (0x24), MMSO, 32, Offset (0x60), P1EB, 16, Offset (0xF0), , 3, RSTU, 1 } OperationRegion (ERMM, SystemMemory, MMSO, 0x1000) Field (ERMM, AnyAcc, NoLock, Preserve) { Offset (0x105), , 5, G06E, 1, G06O, 1, G06I, 1, , 5, G07E, 1, G07O, 1, G07I, 1, Offset (0x10A), , 5, G11E, 1, G11O, 1, G11I, 1, , 5, G12E, 1, G12O, 1, G12I, 1, , 5, G13E, 1, G13O, 1, G13I, 1, , 5, G14E, 1, G14O, 1, G14I, 1, , 5, G15E, 1, G15O, 1, G15I, 1, , 5, G16E, 1, G16O, 1, G16I, 1, Offset (0x113), , 5, G20E, 1, G20O, 1, G20I, 1, , 5, G21E, 1, G21O, 1, G21I, 1, Offset (0x11A), , 5, G27E, 1, G27O, 1, G27I, 1, Offset (0x11F), , 5, G32E, 1, G32O, 1, G32I, 1, Offset (0x122), , 5, G35E, 1, G35O, 1, G35I, 1, Offset (0x128), GP41, 8, Offset (0x12B), , 5, G44E, 1, G44O, 1, G44I, 1, , 5, G45E, 1, G45O, 1, G45I, 1, GP46, 8, Offset (0x132), , 5, G51E, 1, G51O, 1, G51I, 1, Offset (0x136), , 5, G55E, 1, G55O, 1, G55I, 1, Offset (0x13A), , 5, G59E, 1, G59O, 1, G59I, 1, Offset (0x13E), GP63, 8, , 5, G64E, 1, G64O, 1, G64I, 1, Offset (0x164), , 7, GE05, 1, , 5, G66E, 1, G66O, 1, G66I, 1, Offset (0x16A), GE11, 8, Offset (0x16E), , 7, GE15, 1, , 7, GE16, 1, Offset (0x174), , 7, GE21, 1, , 7, GE22, 1, Offset (0x1A5), GPA6, 8, Offset (0x1A9), , 5, GAAE, 1, GAAO, 1, GAAI, 1, Offset (0x1AE), , 5, PD0E, 1, PD0O, 1, PD0I, 1, , 5, PD1E, 1, PD1O, 1, PD1I, 1, , 5, GB1E, 1, GB1O, 1, GB1I, 1, , 5, GB2E, 1, GB2O, 1, GB2I, 1, , 5, GB3E, 1, GB3O, 1, GB3I, 1, , 5, GB4E, 1, GB4O, 1, GB4I, 1, , 5, GB5E, 1, GB5O, 1, GB5I, 1, , 5, GB6E, 1, GB6O, 1, GB6I, 1, Offset (0x1FF), , 1, E01S, 1, , 3, E05S, 1, , 9, E15S, 1, E16S, 1, , 4, E21S, 1, E22S, 1, Offset (0x203), , 1, E01E, 1, , 3, E05E, 1, , 9, E15E, 1, E16E, 1, , 4, E21E, 1, E22E, 1, Offset (0x207), , 1, E01C, 1, , 3, E05C, 1, E06C, 1, , 8, E15C, 1, E16C, 1, , 4, E21C, 1, E22C, 1, Offset (0x20B), , 1, E01L, 1, , 3, E05L, 1, , 9, E15L, 1, E16L, 1, , 6, E22L, 1, Offset (0x287), , 1, CLPS, 1, Offset (0x298), , 7, G15A, 1, Offset (0x2AF), , 2, SLPS, 2, Offset (0x361), , 6, MT3A, 1, Offset (0x376), EPNM, 1, DPPF, 1, Offset (0x3BA), , 6, PWDE, 1, Offset (0x3BD), , 5, ALLS, 1, Offset (0x3C7), , 2, TFTE, 1, Offset (0x3DE), BLNK, 2, Offset (0x3EF), PHYD, 1, Offset (0x3FF), F0CT, 8, F0MS, 8, F0FQ, 8, F0LD, 8, F0MD, 8, F0MP, 8, LT0L, 8, LT0H, 8, MT0L, 8, MT0H, 8, HT0L, 8, HT0H, 8, LRG0, 8, LHC0, 8, Offset (0x40F), F1CT, 8, F1MS, 8, F1FQ, 8, F1LD, 8, F1MD, 8, F1MP, 8, LT1L, 8, LT1H, 8, MT1L, 8, MT1H, 8, HT1L, 8, HT1H, 8, LRG1, 8, LHC1, 8, Offset (0x41F), F2CT, 8, F2MS, 8, F2FQ, 8, F2LD, 8, F2MD, 8, F2MP, 8, LT2L, 8, LT2H, 8, MT2L, 8, MT2H, 8, HT2L, 8, HT2H, 8, LRG2, 8, LHC2, 8, Offset (0x42F), F3CT, 8, F3MS, 8, F3FQ, 8, F3LD, 8, F3MD, 8, F3MP, 8, LT3L, 8, LT3H, 8, MT3L, 8, MT3H, 8, HT3L, 8, HT3H, 8, LRG3, 8, LHC3, 8, Offset (0xD06), MX07, 8, Offset (0xD0E), MX15, 8, MX16, 8, Offset (0xD14), MX21, 8, Offset (0xD1A), MX27, 8, Offset (0xD1F), MX32, 8, Offset (0xD2B), MX44, 8, Offset (0xD3A), MX59, 8, Offset (0xD65), M102, 8, Offset (0xDAE), M175, 8, M176, 8, Offset (0xDB3), M180, 8, Offset (0xDB5), M182, 8, Offset (0xE01), MS02, 8, MS03, 8, MS04, 8, Offset (0xE3F), MS40, 8, Offset (0xE80), , 2, ECES, 1 } OperationRegion (P1E0, SystemIO, P1EB, 0x04) Field (P1E0, ByteAcc, NoLock, Preserve) { , 14, PEWS, 1, WSTA, 1, , 14, PEWD, 1 } } Device (LPC0) { Name (_ADR, 0x00140003) // _ADR: Address Mutex (PSMX, 0x00) Device (DMAC) { Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x0081, // Range Minimum 0x0081, // Range Maximum 0x01, // Alignment 0x0F, // Length ) IO (Decode16, 0x00C0, // Range Minimum 0x00C0, // Range Maximum 0x01, // Alignment 0x20, // Length ) DMA (Compatibility, NotBusMaster, Transfer8_16, ) {4} }) } Device (COPR) { Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x00F0, // Range Minimum 0x00F0, // Range Maximum 0x01, // Alignment 0x0F, // Length ) IRQNoFlags () {13} }) } Device (PIC) { Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0020, // Range Minimum 0x0020, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x00A0, // Range Minimum 0x00A0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IRQNoFlags () {2} }) } Device (RTC) { Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID Name (BUF0, ResourceTemplate () { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x02, // Length ) }) Name (BUF1, ResourceTemplate () { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x01, // Alignment 0x02, // Length ) IRQNoFlags () {8} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { If ((^^^SMBS.HPAD && Ones)) { Return (BUF0) /* \_SB_.PCI0.LPC0.RTC_.BUF0 */ } Return (BUF1) /* \_SB_.PCI0.LPC0.RTC_.BUF1 */ } } Device (SPKR) { Name (_HID, EisaId ("PNP0800") /* Microsoft Sound System Compatible Device */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0061, // Range Minimum 0x0061, // Range Maximum 0x01, // Alignment 0x01, // Length ) }) } Device (TMR) { Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID Name (BUF0, ResourceTemplate () { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x01, // Alignment 0x04, // Length ) }) Name (BUF1, ResourceTemplate () { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x01, // Alignment 0x04, // Length ) IRQNoFlags () {0} }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { If ((^^^SMBS.HPAD && Ones)) { Return (BUF0) /* \_SB_.PCI0.LPC0.TMR_.BUF0 */ } Return (BUF1) /* \_SB_.PCI0.LPC0.TMR_.BUF1 */ } } Device (KBC0) { Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0060, // Range Minimum 0x0060, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0064, // Range Minimum 0x0064, // Range Maximum 0x01, // Alignment 0x01, // Length ) IRQNoFlags () {1} }) } Device (MSS0) { Name (_HID, EisaId ("SYN0728")) // _HID: Hardware ID Name (_CID, Package (0x03) // _CID: Compatible ID { EisaId ("SYN0700"), EisaId ("SYN0002"), EisaId ("PNP0F13") /* PS/2 Mouse */ }) Method (_STA, 0, NotSerialized) // _STA: Status { If ((TPDF < 0x03)) { Return (0x0F) } Return (Zero) } Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IRQ (Edge, ActiveHigh, Exclusive, ) {12} }) } Device (MSS1) { Name (_HID, EisaId ("ETD0600")) // _HID: Hardware ID Name (_CID, Package (0x02) // _CID: Compatible ID { EisaId ("PNP0F13") /* PS/2 Mouse */, EisaId ("ETD0001") }) Method (_STA, 0, NotSerialized) // _STA: Status { If ((TPDF >= 0x03)) { Return (0x0F) } Return (Zero) } Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IRQ (Edge, ActiveHigh, Exclusive, ) {12} }) } Device (SYSR) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0010, // Range Minimum 0x0010, // Range Maximum 0x01, // Alignment 0x10, // Length ) IO (Decode16, 0x002E, // Range Minimum 0x002E, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0072, // Range Minimum 0x0072, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0080, // Range Minimum 0x0080, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x00B0, // Range Minimum 0x00B0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0092, // Range Minimum 0x0092, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0400, // Range Minimum 0x0400, // Range Maximum 0x01, // Alignment 0xD0, // Length ) IO (Decode16, 0x04D0, // Range Minimum 0x04D0, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x04D6, // Range Minimum 0x04D6, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0680, // Range Minimum 0x0680, // Range Maximum 0x01, // Alignment 0x80, // Length ) IO (Decode16, 0x077A, // Range Minimum 0x077A, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0C00, // Range Minimum 0x0C00, // Range Maximum 0x01, // Alignment 0x02, // Length ) IO (Decode16, 0x0C14, // Range Minimum 0x0C14, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0C50, // Range Minimum 0x0C50, // Range Maximum 0x01, // Alignment 0x03, // Length ) IO (Decode16, 0x0C6C, // Range Minimum 0x0C6C, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0C6F, // Range Minimum 0x0C6F, // Range Maximum 0x01, // Alignment 0x01, // Length ) IO (Decode16, 0x0CD0, // Range Minimum 0x0CD0, // Range Maximum 0x01, // Alignment 0x0C, // Length ) IO (Decode16, 0xE02C, // Range Minimum 0xE02C, // Range Maximum 0x01, // Alignment 0x04, // Length ) }) } Device (MEM) { Name (_HID, EisaId ("PNP0C01") /* System Board */) // _HID: Hardware ID Name (MSRC, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x000E0000, // Address Base 0x00020000, // Address Length ) Memory32Fixed (ReadWrite, 0xFFF00000, // Address Base 0x00100000, // Address Length _Y06) }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateDWordField (MSRC, \_SB.PCI0.LPC0.MEM._Y06._LEN, PSIZ) // _LEN: Length CreateDWordField (MSRC, \_SB.PCI0.LPC0.MEM._Y06._BAS, PBAS) // _BAS: Base Address PSIZ = ROMS /* \ROMS */ Local0 = (ROMS - One) PBAS = (Ones - Local0) Return (MSRC) /* \_SB_.PCI0.LPC0.MEM_.MSRC */ } } Method (ECOK, 0, NotSerialized) { If ((^EC0.ECK == One)) { Return (One) } Else { Return (Zero) } } Device (EC0) { Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID Name (_GPE, 0x03) // _GPE: General Purpose Events Name (ECK, Zero) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (BFFR, ResourceTemplate () { IO (Decode16, 0x0062, // Range Minimum 0x0062, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0066, // Range Minimum 0x0066, // Range Maximum 0x00, // Alignment 0x01, // Length ) }) Return (BFFR) /* \_SB_.PCI0.LPC0.EC0_._CRS.BFFR */ } OperationRegion (ECF2, EmbeddedControl, Zero, 0xFF) Field (ECF2, ByteAcc, Lock, Preserve) { VCMD, 8, VDAT, 8, VSTA, 8 } Device (VPC0) { Name (_HID, "VPC2004") // _HID: Hardware ID Name (_UID, Zero) // _UID: Unique ID Name (_VPC, 0x0070E100) Name (VPCD, Zero) Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_CFG, 0, NotSerialized) { Local0 = _VPC /* \_SB_.PCI0.LPC0.EC0_.VPC0._VPC */ Local0 &= 0xFFFF Local1 = Zero Local0 |= 0xE000 Local0 |= 0x0200 If (ECOK ()) { If ((BTEX == One)) { Local1 |= One } Else { Local1 &= 0xFE } If ((W3GE == One)) { Local1 |= 0x02 } Else { Local1 &= 0xFD } If ((WLEX == One)) { Local1 |= 0x04 } Else { Local1 &= 0xFB } If ((CMEX == One)) { Local1 |= 0x08 } Else { Local1 &= 0xF7 } } Local1 |= 0x70 Local1 &= 0x7F Local1 *= 0x00010000 Local0 += Local1 _VPC = Local0 Return (_VPC) /* \_SB_.PCI0.LPC0.EC0_.VPC0._VPC */ } Method (VPCR, 1, Serialized) { If ((Arg0 == One)) { VPCD = VCMD /* \_SB_.PCI0.LPC0.EC0_.VCMD */ } Else { VPCD = VDAT /* \_SB_.PCI0.LPC0.EC0_.VDAT */ } Return (VPCD) /* \_SB_.PCI0.LPC0.EC0_.VPC0.VPCD */ } Method (VPCW, 2, Serialized) { If ((Arg0 == One)) { VCMD = Arg1 } Else { VDAT = Arg1 } Return (Zero) } Method (APPC, 1, Serialized) { APTG = Arg0 APEJ = Arg0 Return (Zero) } Method (DBSL, 0, NotSerialized) { Return (Package (0x0B) { 0x64, 0x5A, 0x50, 0x46, 0x3C, 0x32, 0x28, 0x1E, 0x14, 0x0A, Zero }) } Method (HALS, 0, NotSerialized) { If (One) {} Else { Return (Zero) } } Method (SALS, 1, Serialized) { If ((Arg0 == One)) {} Else { } Return (Zero) } Method (HODD, 0, NotSerialized) { Return (0xFF) } Method (SODD, 1, Serialized) { If ((Arg0 == One)) {} Else { } Return (Zero) } Method (BASL, 1, Serialized) { Local0 = Arg0 Local0 &= 0xFFFF Local1 = (Arg0 & 0xFFFF0000) Local1 = (Local1 / 0x00010000) If (((Local0 == Zero) || (Local0 == Ones))) { P80H = Local0 } Else { BCST = Local0 BCSP = Local1 } Return (Zero) } Method (GBMD, 0, NotSerialized) { Local0 = 0x10000000 If ((Zero == EDCC)) { Local0 |= One } If ((One == MBBD)) { Local0 |= 0x08 } If ((One == SBBD)) { Local0 |= 0x10 } If ((One == BTCM)) { Local0 |= 0x40 } Return (Local0) } Method (SBMC, 1, NotSerialized) { If ((Arg0 == Zero)) { CDMB = Zero EDCC = One Return (Zero) } If ((Arg0 == One)) { EDCC = Zero CDMB = One Return (Zero) } If ((Arg0 == 0x02)) { CCSB = One Return (Zero) } If ((Arg0 == 0x03)) { BTSM = One Return (Zero) } If ((Arg0 == 0x04)) { BTCM = One LBTM = Zero Return (Zero) } If ((Arg0 == 0x05)) { LBTM = One BTCM = Zero Return (Zero) } If ((Arg0 == 0x06)) { CSBM = One Return (Zero) } Return (Zero) } Method (SHDC, 1, NotSerialized) { IPEN = Arg0 Return (Zero) } } Method (_Q44, 0, NotSerialized) // _Qxx: EC Query { If ((ECK == One)) { Notify (VPC0, 0x80) // Status Change } } OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF) Field (ERAM, ByteAcc, Lock, Preserve) { Offset (0x05), WINV, 1, Offset (0x06), BCST, 8, BCSP, 8, BATM, 16, EDCC, 1, ALSC, 1, CDMB, 1, CCSB, 1, BTSM, 1, BTCM, 1, LBTM, 1, CSBM, 1, , 4, IPEN, 1, Offset (0x0F), FNCM, 8, Offset (0x19), BATD, 56, Offset (0x52), , 1, MBBD, 1, Offset (0x60), SMPR, 8, SMST, 8, SMAD, 8, SMCM, 8, SMDR, 32, BCNT, 8, SMAA, 8, SMD0, 8, SMD1, 8, Offset (0x90), Offset (0x91), Offset (0x92), Offset (0x93), Offset (0x94), ERIB, 16, ERBD, 8, Offset (0x98), Offset (0x99), OSIF, 1, , 1, THPD, 1, Offset (0x9A), BAL1, 1, BAL2, 1, BAL3, 1, BAL4, 1, BCL1, 1, BCL2, 1, BCL3, 1, BCL4, 1, BPU1, 1, BPU2, 1, BPU3, 1, BPU4, 1, BOS1, 1, BOS2, 1, BOS3, 1, BOS4, 1, PHDD, 1, IFDD, 1, IODD, 1, SHDD, 1, LS20, 1, EFDD, 1, ECRT, 1, LANC, 1, SBTN, 1, VIDO, 1, VOLD, 1, VOLU, 1, MUTE, 1, CONT, 1, BRGT, 1, HBTN, 1, S4SE, 1, SKEY, 1, BKEY, 1, TKEY, 1, FKEY, 1, DVDM, 1, DIGM, 1, UWAK, 1, , 1, LIDS, 1, Offset (0xA0), , 6, SWTH, 1, HWTH, 1, DKT0, 1, DKT1, 1, , 2, OSUD, 1, OSDK, 1, OSSU, 1, DKCG, 1, ODTS, 8, OSTP, 3, PCMQ, 1, PCMR, 1, ADPT, 1, SYS6, 1, SYS7, 1, PWAK, 1, MWAK, 1, LWAK, 1, RWAK, 1, , 2, KWAK, 1, MSWK, 1, CCAC, 1, AOAC, 1, BLAC, 1, PSRC, 1, BOAC, 1, LCAC, 1, AAAC, 1, ACAC, 1, PCEC, 8, THON, 8, THSD, 8, THEM, 8, TCON, 8, THRS, 8, THSE, 8, FSSN, 4, FANU, 4, PTVL, 3, , 3, TTSR, 1, TTHR, 1, TSTH, 1, TSBC, 1, TSBF, 1, TSPL, 1, TSBT, 1, , 2, THTA, 1, CTMP, 8, LTMP, 8, SKTA, 8, SKTB, 8, SKTC, 8, CDTS, 8, NBTP, 8, LANP, 1, LCDS, 1, Offset (0xB8), BTDT, 1, BTPW, 1, CMEX, 1, CMPS, 1, BTSW, 1, BTWK, 1, BTLD, 1, DVME, 1, BRTS, 8, CTRS, 8, WLAT, 1, BTAT, 1, WLEX, 1, BTEX, 1, KLSW, 1, WLOK, 1, W3GE, 1, W3GA, 1, PJID, 8, CPUN, 8, THFN, 8, MLED, 1, SCHG, 1, SCCF, 1, SCPF, 1, ACIS, 1, Offset (0xC0), , 4, BTMF, 3, BTY0, 1, BST0, 8, BRC0, 16, BSN0, 16, BPV0, 16, BDV0, 16, BDC0, 16, BFC0, 16, GAU0, 8, BSCY, 8, BSCU, 16, BAC0, 16, BTW0, 8, BATV, 8, BPTC, 8, BTTC, 8, BTMA, 16, BTSC, 8, BCIX, 8, CCBA, 8, CBOT, 8, BTSS, 16, OVCC, 8, CCFC, 8, BADC, 8, BSC1, 16, BSC2, 16, BSC3, 16, BSC4, 16, BDME, 16, Offset (0xEE), Offset (0xEF), Offset (0xF0), BTS1, 8, BTS2, 8, , 1, SBBD, 1 } Method (PCLK, 0, NotSerialized) { Local0 = PTVL /* \_SB_.PCI0.LPC0.EC0_.PTVL */ P80H = Local0 \_PR.C000._PPC = Local0 If ((CPUN >= 0x02)) { \_PR.C001._PPC = Local0 If ((CPUN >= 0x03)) { \_PR.C002._PPC = Local0 If ((CPUN == 0x04)) { \_PR.C003._PPC = Local0 } } } Notify (\_PR.C000, 0x80) // Performance Capability Change If ((CPUN >= 0x02)) { Notify (\_PR.C001, 0x80) // Performance Capability Change If ((CPUN >= 0x03)) { Notify (\_PR.C002, 0x80) // Performance Capability Change If ((CPUN == 0x04)) { Notify (\_PR.C003, 0x80) // Performance Capability Change } } } } Method (_REG, 2, NotSerialized) // _REG: Region Availability { If ((Arg0 == 0x03)) { ECON = Arg1 ECK = Arg1 If (((OSYS == 0x07D6) || (OSYS == 0x07D9))) { WINV = One } Else { WINV = Zero } } } Method (_Q11, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x11 Notify (^^^AGP.VGA.LCD, 0x87) // Device-Specific Notify (^^^PB2.VGA.LCD, 0x87) // Device-Specific Notify (^^^PB3.VGA.LCD, 0x87) // Device-Specific Notify (VPC0, 0x80) // Status Change } Method (_Q12, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x12 Notify (^^^AGP.VGA.LCD, 0x86) // Device-Specific Notify (^^^PB2.VGA.LCD, 0x86) // Device-Specific Notify (^^^PB3.VGA.LCD, 0x86) // Device-Specific Notify (VPC0, 0x80) // Status Change } Method (_Q1D, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x1D Sleep (0x03E8) PCLK () Notify (\_TZ.THRM, 0x80) // Thermal Status Change Sleep (0x1E) } Method (_Q22, 0, NotSerialized) // _Qxx: EC Query { Notify (BAT0, 0x80) // Status Change } Method (_Q25, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x25 Notify (BAT0, 0x81) // Information Change Notify (BAT0, 0x80) // Status Change } Method (_Q37, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x37 Notify (ACAD, Zero) // Bus Check Notify (BAT0, 0x80) // Status Change } Method (_Q38, 0, NotSerialized) // _Qxx: EC Query { P80H = 0x38 Notify (ACAD, One) // Device Check Notify (BAT0, 0x80) // Status Change } OperationRegion (CCLK, SystemIO, 0x0410, 0x04) Field (CCLK, DWordAcc, NoLock, Preserve) { , 1, DUTY, 3, THEN, 1 } Mutex (FAMX, 0x00) Method (FANG, 1, NotSerialized) { Acquire (FAMX, 0xFFFF) ERIB = Arg0 Local0 = ERBD /* \_SB_.PCI0.LPC0.EC0_.ERBD */ Release (FAMX) Return (Local0) } Method (FANW, 2, NotSerialized) { Acquire (FAMX, 0xFFFF) ERIB = Arg0 ERBD = Arg1 Release (FAMX) Return (Arg1) } Method (TUVR, 1, NotSerialized) { Return (0x03) } Method (THRO, 1, NotSerialized) { If ((Arg0 == Zero)) { Return (THEN) /* \_SB_.PCI0.LPC0.EC0_.THEN */ } ElseIf ((Arg0 == One)) { Return (DUTY) /* \_SB_.PCI0.LPC0.EC0_.DUTY */ } ElseIf ((Arg0 == 0x02)) { Return (TTHR) /* \_SB_.PCI0.LPC0.EC0_.TTHR */ } Else { Return (0xFF) } } Method (CLCK, 1, NotSerialized) { If ((Arg0 == Zero)) { THEN = Zero } Else { DUTY = Arg0 THEN = One } Return (THEN) /* \_SB_.PCI0.LPC0.EC0_.THEN */ } Method (LVCK, 0, NotSerialized) { Return (0x38) } Method (AITL, 2, NotSerialized) { Local0 = Arg1 If ((Zero == APSD)) { APSD = One If ((Arg0 == 0x10)) { APMD = Zero APMC = 0x86 Return (0xF0) } If ((Arg0 == 0x11)) { APMD = Zero APMC = 0x87 Return (0xF0) } If ((Arg0 == 0x12)) { APMD = Zero APMC = 0x88 Return (0xF0) } If ((Arg0 == 0x13)) { APMD = Zero APMC = 0x89 Return (0xF0) } } Else { Return (0xFE) } Return (0xFF) } } Device (ACAD) { Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID Name (_PCL, Package (0x01) // _PCL: Power Consumer List { _SB }) Method (_PSR, 0, NotSerialized) // _PSR: Power Source { If (ECOK ()) { Return (^^EC0.ADPT) /* \_SB_.PCI0.LPC0.EC0_.ADPT */ } } } Device (BAT0) { Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Name (_PCL, Package (0x01) // _PCL: Power Consumer List { _SB }) Name (PBIF, Package (0x0D) { One, 0x0FA0, 0x0FA0, One, 0x39D0, 0x0190, 0x78, 0x0108, 0x0EC4, "Li_Ion 4000mA ", "", "LION", "Compal " }) Name (PBST, Package (0x04) { One, Ones, Ones, 0x39D0 }) Method (_STA, 0, NotSerialized) // _STA: Status { If (ECON) { If (_OSI ("Windows 2006")) { ^^EC0.OSTP = One } If (_OSI ("Windows 2006 SP1")) { ^^EC0.OSTP = One } If (_OSI ("Windows 2009")) { ^^EC0.OSTP = 0x03 } If (^^EC0.BAL1) { Return (0x1F) } Else { Return (0x0F) } } Else { Return (0x1F) } } Method (_BIF, 0, NotSerialized) // _BIF: Battery Information { If (ECON) { PBIF [One] = ^^EC0.BDC0 /* \_SB_.PCI0.LPC0.EC0_.BDC0 */ PBIF [0x02] = ^^EC0.BFC0 /* \_SB_.PCI0.LPC0.EC0_.BFC0 */ PBIF [0x04] = ^^EC0.BDV0 /* \_SB_.PCI0.LPC0.EC0_.BDV0 */ Local2 = ^^EC0.BDC0 /* \_SB_.PCI0.LPC0.EC0_.BDC0 */ Divide (Local2, 0x64, Local6, Local2) Local3 = (Local2 * 0x05) PBIF [0x05] = Local3 Local4 = (Local2 * 0x03) PBIF [0x06] = Local4 Local1 = ^^EC0.BTMF /* \_SB_.PCI0.LPC0.EC0_.BTMF */ If ((Local1 == One)) { PBIF [0x09] = "GC86508SAT0 " PBIF [0x0C] = "SANYO " } ElseIf ((Local1 == 0x02)) { PBIF [0x09] = "GC86503SY90 " PBIF [0x0C] = "SONY " } ElseIf ((Local1 == 0x06)) { PBIF [0x09] = "GC86503CPG0 " PBIF [0x0C] = "CELXPERT " } ElseIf ((Local1 == 0x07)) { PBIF [0x09] = "GC86508SP60 " PBIF [0x0C] = "SIMPLO " } Else { PBIF [0x09] = "BCL3100LiON " PBIF [0x0C] = "LENOVO " } } Return (PBIF) /* \_SB_.PCI0.LPC0.BAT0.PBIF */ } Method (_BST, 0, NotSerialized) // _BST: Battery Status { If (ECON) { Local0 = ^^EC0.BST0 /* \_SB_.PCI0.LPC0.EC0_.BST0 */ Local0 &= 0x07 PBST [Zero] = Local0 Local2 = ^^EC0.GAU0 /* \_SB_.PCI0.LPC0.EC0_.GAU0 */ Local3 = ^^EC0.BPV0 /* \_SB_.PCI0.LPC0.EC0_.BPV0 */ Local1 = ^^EC0.BFC0 /* \_SB_.PCI0.LPC0.EC0_.BFC0 */ If (Local2) { Local2 *= Local1 Divide (Local2, 0x64, Local6, Local2) If (Local6) { Local2++ } } Local1 = ^^EC0.BAC0 /* \_SB_.PCI0.LPC0.EC0_.BAC0 */ If (Local1 &= 0x8000) { Local1 = ^^EC0.BAC0 /* \_SB_.PCI0.LPC0.EC0_.BAC0 */ Local1 = (0xFFFF - Local1) } Else { Local1 = Zero } PBST [One] = Local1 PBST [0x02] = Local2 PBST [0x03] = Local3 } Return (PBST) /* \_SB_.PCI0.LPC0.BAT0.PBST */ } } OperationRegion (LCLM, SystemIO, 0x0C50, 0x03) Field (LCLM, ByteAcc, NoLock, Preserve) { CLMI, 8, CLMD, 8, CLGP, 8 } IndexField (CLMI, CLMD, ByteAcc, NoLock, Preserve) { IDRG, 8, Offset (0x02), TSTS, 8, TINT, 8, Offset (0x12), I2CC, 8, GPIO, 8 } Method (RGPM, 0, NotSerialized) { Local0 = GPIO /* \_SB_.PCI0.LPC0.GPIO */ Local0 &= 0xFFFFFF3F GPIO = Local0 Local1 = CLGP /* \_SB_.PCI0.LPC0.CLGP */ Return (Local1) } } Device (P2P) { Name (_ADR, 0x00140004) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { If ((WKPM == One)) { Return (GPRW (0x04, 0x05)) } Else { Return (GPRW (0x04, Zero)) } } OperationRegion (PCPC, PCI_Config, Zero, 0xFF) Field (PCPC, ByteAcc, NoLock, Preserve) { Offset (0x04), PCMD, 8, Offset (0x1C), IOW1, 8, IOW2, 8, Offset (0x48), PR48, 8, PR49, 8, PR4A, 8, PR4B, 8 } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If ((GPIC == Zero)) { Return (PIC) /* \_SB_.PCI0.P2P_.PIC_ */ } Else { Return (APIC) /* \_SB_.PCI0.P2P_.APIC */ } } Name (PIC, Package (0x0E) { Package (0x04) { 0x0004FFFF, Zero, LNKE, Zero }, Package (0x04) { 0x0004FFFF, One, LNKF, Zero }, Package (0x04) { 0x0005FFFF, Zero, LNKE, Zero }, Package (0x04) { 0x0005FFFF, One, LNKF, Zero }, Package (0x04) { 0x0005FFFF, 0x02, LNKG, Zero }, Package (0x04) { 0x0005FFFF, 0x03, LNKH, Zero }, Package (0x04) { 0x0006FFFF, Zero, LNKF, Zero }, Package (0x04) { 0x0006FFFF, One, LNKG, Zero }, Package (0x04) { 0x0006FFFF, 0x02, LNKH, Zero }, Package (0x04) { 0x0006FFFF, 0x03, LNKE, Zero }, Package (0x04) { 0x0007FFFF, Zero, LNKG, Zero }, Package (0x04) { 0x0007FFFF, One, LNKH, Zero }, Package (0x04) { 0x0007FFFF, 0x02, LNKE, Zero }, Package (0x04) { 0x0007FFFF, 0x03, LNKF, Zero } }) Name (APIC, Package (0x0E) { Package (0x04) { 0x0004FFFF, Zero, Zero, 0x14 }, Package (0x04) { 0x0004FFFF, One, Zero, 0x15 }, Package (0x04) { 0x0005FFFF, Zero, Zero, 0x14 }, Package (0x04) { 0x0005FFFF, One, Zero, 0x15 }, Package (0x04) { 0x0005FFFF, 0x02, Zero, 0x16 }, Package (0x04) { 0x0005FFFF, 0x03, Zero, 0x17 }, Package (0x04) { 0x0006FFFF, Zero, Zero, 0x15 }, Package (0x04) { 0x0006FFFF, One, Zero, 0x16 }, Package (0x04) { 0x0006FFFF, 0x02, Zero, 0x17 }, Package (0x04) { 0x0006FFFF, 0x03, Zero, 0x14 }, Package (0x04) { 0x0007FFFF, Zero, Zero, 0x16 }, Package (0x04) { 0x0007FFFF, One, Zero, 0x17 }, Package (0x04) { 0x0007FFFF, 0x02, Zero, 0x14 }, Package (0x04) { 0x0007FFFF, 0x03, Zero, 0x15 } }) } Device (SATA) { Name (_ADR, 0x00110000) // _ADR: Address Name (B5EN, Zero) Name (BA_5, Zero) Name (SBAR, 0xF2407000) OperationRegion (SATX, PCI_Config, Zero, 0x50) Field (SATX, AnyAcc, NoLock, Preserve) { VIDI, 32, Offset (0x0A), STCL, 16, Offset (0x24), BA05, 32, Offset (0x40), SCWE, 1 } Method (GBAA, 0, Serialized) { BA_5 = BA05 /* \_SB_.PCI0.SATA.BA05 */ If (((BA_5 == Ones) || (STCL != 0x0101))) { B5EN = Zero Return (SBAR) /* \_SB_.PCI0.SATA.SBAR */ } Else { B5EN = One Return (BA_5) /* \_SB_.PCI0.SATA.BA_5 */ } } OperationRegion (BAR5, SystemMemory, GBAA (), 0x1000) Field (BAR5, AnyAcc, NoLock, Preserve) { Offset (0xF9), , 4, ESP0, 1, ESP1, 1, ESP2, 1, ESP3, 1, ESP4, 1, ESP5, 1, Offset (0xFC), , 11, ALPM, 1, Offset (0x120), , 7, BSY0, 1, Offset (0x128), DET0, 4, Offset (0x129), IPM0, 4, Offset (0x1A0), , 7, BSY1, 1, Offset (0x1A8), DET1, 4, Offset (0x1A9), IPM1, 4, Offset (0x220), , 7, BSY2, 1, Offset (0x228), DET2, 4, Offset (0x229), IPM2, 4, Offset (0x2A0), , 7, BSY3, 1, Offset (0x2A8), DET3, 4, Offset (0x2A9), IPM3, 4, Offset (0x320), , 7, BSY4, 1, Offset (0x328), DET4, 4, Offset (0x329), IPM4, 4, Offset (0x3A0), , 7, BSY5, 1, Offset (0x3A8), DET5, 4, Offset (0x3A9), IPM5, 4 } Method (ELDS, 0, NotSerialized) { SCWE = One ESP0 = Zero ESP1 = Zero ALPM = Zero SCWE = Zero } Method (_INI, 0, NotSerialized) // _INI: Initialize { ELDS () GBAA () } Device (PRID) { Name (_ADR, Zero) // _ADR: Address Name (SPTM, Buffer (0x14) { /* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, /* x....... */ /* 0008 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, /* x....... */ /* 0010 */ 0x1F, 0x00, 0x00, 0x00 /* .... */ }) Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { Return (SPTM) /* \_SB_.PCI0.SATA.PRID.SPTM */ } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { SPTM = Arg0 } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { GBAA () If ((((TPOS >= 0x40) || (TPOS == 0x04)) && B5EN)) { If (IPM0) { Local0 = 0x32 While (((BSY0 == One) && Local0)) { Sleep (0xFA) Local0-- } } If (IPM2) { Local0 = 0x32 While (((BSY2 == One) && Local0)) { Sleep (0xFA) Local0-- } } } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Device (P_D0) { Name (_ADR, Zero) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { GBAA () If ((B5EN == Zero)) { Return (Zero) } If ((DET0 == 0x03)) { Return (0x0F) } Else { Return (Zero) } } Name (S12P, Zero) Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { GBAA () If ((((TPOS < 0x40) && (TPOS != 0x04)) && B5EN)) { Local0 = 0x32 While (((BSY0 == One) && Local0)) { Sleep (0xFA) Local0-- } } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Local0 = Buffer (0x07) { 0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF /* .F..... */ } Return (Local0) } } Device (P_D1) { Name (_ADR, One) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { GBAA () If ((B5EN == Zero)) { Return (Zero) } If ((DET2 == 0x03)) { Return (0x0F) } Else { Return (Zero) } } Name (S12P, Zero) Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { GBAA () If ((((TPOS < 0x40) && (TPOS != 0x04)) && B5EN)) { Local0 = 0x32 While (((BSY2 == One) && Local0)) { Sleep (0xFA) Local0-- } } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Local0 = Buffer (0x07) { 0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF /* .F..... */ } Return (Local0) } } } Device (SECD) { Name (_ADR, 0x02) // _ADR: Address Name (SPTM, Buffer (0x14) { /* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, /* x....... */ /* 0008 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, /* x....... */ /* 0010 */ 0x1F, 0x00, 0x00, 0x00 /* .... */ }) Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { Return (SPTM) /* \_SB_.PCI0.SATA.SECD.SPTM */ } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { SPTM = Arg0 } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { GBAA () If ((((TPOS >= 0x40) || (TPOS == 0x04)) && B5EN)) { If (IPM1) { Local0 = 0x32 While (((BSY1 == One) && Local0)) { Sleep (0xFA) Local0-- } } If (IPM3) { Local0 = 0x32 While (((BSY3 == One) && Local0)) { Sleep (0xFA) Local0-- } } } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Device (S_D0) { Name (_ADR, Zero) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { GBAA () If ((B5EN == Zero)) { Return (Zero) } If ((DET1 == 0x03)) { Return (0x0F) } Else { Return (Zero) } } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { GBAA () If ((((TPOS < 0x40) && (TPOS != 0x04)) && B5EN)) { Local0 = 0x32 While (((BSY1 == One) && Local0)) { Sleep (0xFA) Local0-- } } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Local0 = Buffer (0x07) { 0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF /* .F..... */ } Return (Local0) } } Device (S_D1) { Name (_ADR, One) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { GBAA () If ((B5EN == Zero)) { Return (Zero) } If ((DET3 == 0x03)) { Return (0x0F) } Else { Return (Zero) } } Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 { GBAA () If ((((TPOS < 0x40) && (TPOS != 0x04)) && B5EN)) { Local0 = 0x32 While (((BSY3 == One) && Local0)) { Sleep (0xFA) Local0-- } } } Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 { } Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Local0 = Buffer (0x07) { 0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF /* .F..... */ } Return (Local0) } } } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Device (ESAT) { Name (_ADR, Zero) // _ADR: Address Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } } } Device (IDE) { Name (_ADR, 0x00140001) // _ADR: Address Name (UDMT, Package (0x08) { 0x78, 0x5A, 0x3C, 0x2D, 0x1E, 0x14, Zero, Zero }) Name (PIOT, Package (0x06) { 0x0258, 0x0186, 0x010E, 0xB4, 0x78, Zero }) Name (PITR, Package (0x06) { 0x99, 0x47, 0x34, 0x22, 0x20, 0x99 }) Name (MDMT, Package (0x04) { 0x01E0, 0x96, 0x78, Zero }) Name (MDTR, Package (0x04) { 0x77, 0x21, 0x20, 0xFF }) OperationRegion (IDE, PCI_Config, 0x40, 0x20) Field (IDE, WordAcc, NoLock, Preserve) { PPIT, 16, SPIT, 16, PMDT, 16, SMDT, 16, PPIC, 8, SPIC, 8, PPIM, 8, SPIM, 8, Offset (0x14), PUDC, 2, SUDC, 2, Offset (0x16), PUDM, 8, SUDM, 8 } Method (GETT, 1, NotSerialized) { Local0 = (Arg0 & 0x0F) Local1 = (Arg0 >> 0x04) Return ((0x1E * ((Local0 + One) + (Local1 + One) ))) } Method (GTM, 1, NotSerialized) { CreateByteField (Arg0, Zero, PIT1) CreateByteField (Arg0, One, PIT0) CreateByteField (Arg0, 0x02, MDT1) CreateByteField (Arg0, 0x03, MDT0) CreateByteField (Arg0, 0x04, PICX) CreateByteField (Arg0, 0x05, UDCX) CreateByteField (Arg0, 0x06, UDMX) Name (BUF, Buffer (0x14) { /* 0000 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* ........ */ /* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* ........ */ /* 0010 */ 0x00, 0x00, 0x00, 0x00 /* .... */ }) CreateDWordField (BUF, Zero, PIO0) CreateDWordField (BUF, 0x04, DMA0) CreateDWordField (BUF, 0x08, PIO1) CreateDWordField (BUF, 0x0C, DMA1) CreateDWordField (BUF, 0x10, FLAG) If ((PICX & One)) { Return (BUF) /* \_SB_.PCI0.IDE_.GTM_.BUF_ */ } PIO0 = GETT (PIT0) PIO1 = GETT (PIT1) If ((UDCX & One)) { FLAG |= One DMA0 = DerefOf (UDMT [(UDMX & 0x0F)]) } ElseIf ((MDT0 != 0xFF)) { DMA0 = GETT (MDT0) } If ((UDCX & 0x02)) { FLAG |= 0x04 DMA1 = DerefOf (UDMT [(UDMX >> 0x04)]) } ElseIf ((MDT1 != 0xFF)) { DMA1 = GETT (MDT1) } FLAG |= 0x1A Return (BUF) /* \_SB_.PCI0.IDE_.GTM_.BUF_ */ } Method (STM, 3, NotSerialized) { CreateDWordField (Arg0, Zero, PIO0) CreateDWordField (Arg0, 0x04, DMA0) CreateDWordField (Arg0, 0x08, PIO1) CreateDWordField (Arg0, 0x0C, DMA1) CreateDWordField (Arg0, 0x10, FLAG) Name (BUF, Buffer (0x07) { 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00 /* ....... */ }) CreateByteField (BUF, Zero, PIT1) CreateByteField (BUF, One, PIT0) CreateByteField (BUF, 0x02, MDT1) CreateByteField (BUF, 0x03, MDT0) CreateByteField (BUF, 0x04, PIMX) CreateByteField (BUF, 0x05, UDCX) CreateByteField (BUF, 0x06, UDMX) Local0 = Match (PIOT, MLE, PIO0, MTR, Zero, Zero) Divide (Local0, 0x05, Local0) Local1 = Match (PIOT, MLE, PIO1, MTR, Zero, Zero) Divide (Local1, 0x05, Local1) PIMX = ((Local1 << 0x04) | Local0) PIT0 = DerefOf (PITR [Local0]) PIT1 = DerefOf (PITR [Local1]) If ((FLAG & One)) { Local0 = Match (UDMT, MLE, DMA0, MTR, Zero, Zero) Divide (Local0, 0x06, Local0) UDMX |= Local0 UDCX |= One } ElseIf ((DMA0 != Ones)) { Local0 = Match (MDMT, MLE, DMA0, MTR, Zero, Zero) MDT0 = DerefOf (MDTR [Local0]) } If ((FLAG & 0x04)) { Local0 = Match (UDMT, MLE, DMA1, MTR, Zero, Zero) Divide (Local0, 0x06, Local0) UDMX |= (Local0 << 0x04) UDCX |= 0x02 } ElseIf ((DMA1 != Ones)) { Local0 = Match (MDMT, MLE, DMA1, MTR, Zero, Zero) MDT1 = DerefOf (MDTR [Local0]) } Return (BUF) /* \_SB_.PCI0.IDE_.STM_.BUF_ */ } Method (GTF, 2, NotSerialized) { CreateByteField (Arg1, Zero, MDT1) CreateByteField (Arg1, One, MDT0) CreateByteField (Arg1, 0x02, PIMX) CreateByteField (Arg1, 0x03, UDCX) CreateByteField (Arg1, 0x04, UDMX) If ((Arg0 == 0xA0)) { Local0 = (PIMX & 0x0F) Local1 = MDT0 /* \_SB_.PCI0.IDE_.GTF_.MDT0 */ Local2 = (UDCX & One) Local3 = (UDMX & 0x0F) } Else { Local0 = (PIMX >> 0x04) Local1 = MDT1 /* \_SB_.PCI0.IDE_.GTF_.MDT1 */ Local2 = (UDCX & 0x02) Local3 = (UDMX >> 0x04) } Name (BUF, Buffer (0x0E) { /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x03, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF /* ...... */ }) CreateByteField (BUF, One, PMOD) CreateByteField (BUF, 0x08, DMOD) CreateByteField (BUF, 0x05, CMDA) CreateByteField (BUF, 0x0C, CMDB) CMDA = Arg0 CMDB = Arg0 PMOD = (Local0 | 0x08) If (Local2) { DMOD = (Local3 | 0x40) } ElseIf ((Local1 != 0xFF)) { Local4 = Match (MDMT, MLE, GETT (Local1), MTR, Zero, Zero) If ((Local4 < 0x03)) { DMOD = (0x20 | Local4) } } Return (BUF) /* \_SB_.PCI0.IDE_.GTF_.BUF_ */ } Device (PRID) { Name (_ADR, Zero) // _ADR: Address Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { Name (BUF, Buffer (0x07) { 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00 /* ....... */ }) CreateWordField (BUF, Zero, VPIT) CreateWordField (BUF, 0x02, VMDT) CreateByteField (BUF, 0x04, VPIC) CreateByteField (BUF, 0x05, VUDC) CreateByteField (BUF, 0x06, VUDM) VPIT = PPIT /* \_SB_.PCI0.IDE_.PPIT */ VMDT = PMDT /* \_SB_.PCI0.IDE_.PMDT */ VPIC = PPIC /* \_SB_.PCI0.IDE_.PPIC */ VUDC = PUDC /* \_SB_.PCI0.IDE_.PUDC */ VUDM = PUDM /* \_SB_.PCI0.IDE_.PUDM */ Return (GTM (BUF)) } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { Name (BUF, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ....... */ }) CreateWordField (BUF, Zero, VPIT) CreateWordField (BUF, 0x02, VMDT) CreateByteField (BUF, 0x04, VPIM) CreateByteField (BUF, 0x05, VUDC) CreateByteField (BUF, 0x06, VUDM) BUF = STM (Arg0, Arg1, Arg2) PPIT = VPIT /* \_SB_.PCI0.IDE_.PRID._STM.VPIT */ PMDT = VMDT /* \_SB_.PCI0.IDE_.PRID._STM.VMDT */ PPIM = VPIM /* \_SB_.PCI0.IDE_.PRID._STM.VPIM */ PUDC = VUDC /* \_SB_.PCI0.IDE_.PRID._STM.VUDC */ PUDM = VUDM /* \_SB_.PCI0.IDE_.PRID._STM.VUDM */ } Device (P_D0) { Name (_ADR, Zero) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Name (BUF, Buffer (0x05) { 0x00, 0x00, 0x00, 0x00, 0x00 /* ..... */ }) CreateWordField (BUF, Zero, VMDT) CreateByteField (BUF, 0x02, VPIM) CreateByteField (BUF, 0x03, VUDC) CreateByteField (BUF, 0x04, VUDM) VMDT = PMDT /* \_SB_.PCI0.IDE_.PMDT */ VPIM = PPIM /* \_SB_.PCI0.IDE_.PPIM */ VUDC = PUDC /* \_SB_.PCI0.IDE_.PUDC */ VUDM = PUDM /* \_SB_.PCI0.IDE_.PUDM */ Return (GTF (0xA0, BUF)) } } Device (P_D1) { Name (_ADR, One) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Name (BUF, Buffer (0x05) { 0x00, 0x00, 0x00, 0x00, 0x00 /* ..... */ }) CreateWordField (BUF, Zero, VMDT) CreateByteField (BUF, 0x02, VPIM) CreateByteField (BUF, 0x03, VUDC) CreateByteField (BUF, 0x04, VUDM) VMDT = PMDT /* \_SB_.PCI0.IDE_.PMDT */ VPIM = PPIM /* \_SB_.PCI0.IDE_.PPIM */ VUDC = PUDC /* \_SB_.PCI0.IDE_.PUDC */ VUDM = PUDM /* \_SB_.PCI0.IDE_.PUDM */ Return (GTF (0xB0, BUF)) } } } Device (SECD) { Name (_ADR, One) // _ADR: Address Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { Name (BUF, Buffer (0x07) { 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00 /* ....... */ }) CreateWordField (BUF, Zero, VPIT) CreateWordField (BUF, 0x02, VMDT) CreateByteField (BUF, 0x04, VPIC) CreateByteField (BUF, 0x05, VUDC) CreateByteField (BUF, 0x06, VUDM) VPIT = SPIT /* \_SB_.PCI0.IDE_.SPIT */ VMDT = SMDT /* \_SB_.PCI0.IDE_.SMDT */ VPIC = SPIC /* \_SB_.PCI0.IDE_.SPIC */ VUDC = SUDC /* \_SB_.PCI0.IDE_.SUDC */ VUDM = SUDM /* \_SB_.PCI0.IDE_.SUDM */ Return (GTM (BUF)) } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { Name (BUF, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ....... */ }) CreateWordField (BUF, Zero, VPIT) CreateWordField (BUF, 0x02, VMDT) CreateByteField (BUF, 0x04, VPIM) CreateByteField (BUF, 0x05, VUDC) CreateByteField (BUF, 0x06, VUDM) BUF = STM (Arg0, Arg1, Arg2) SPIT = VPIT /* \_SB_.PCI0.IDE_.SECD._STM.VPIT */ SMDT = VMDT /* \_SB_.PCI0.IDE_.SECD._STM.VMDT */ SPIM = VPIM /* \_SB_.PCI0.IDE_.SECD._STM.VPIM */ SUDC = VUDC /* \_SB_.PCI0.IDE_.SECD._STM.VUDC */ SUDM = VUDM /* \_SB_.PCI0.IDE_.SECD._STM.VUDM */ } Device (S_D0) { Name (_ADR, Zero) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Name (BUF, Buffer (0x05) { 0x00, 0x00, 0x00, 0x00, 0x00 /* ..... */ }) CreateWordField (BUF, Zero, VMDT) CreateByteField (BUF, 0x02, VPIM) CreateByteField (BUF, 0x03, VUDC) CreateByteField (BUF, 0x04, VUDM) VMDT = SMDT /* \_SB_.PCI0.IDE_.SMDT */ VPIM = SPIM /* \_SB_.PCI0.IDE_.SPIM */ VUDC = SUDC /* \_SB_.PCI0.IDE_.SUDC */ VUDM = SUDM /* \_SB_.PCI0.IDE_.SUDM */ Return (GTF (0xA0, BUF)) } } Device (S_D1) { Name (_ADR, One) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Name (BUF, Buffer (0x05) { 0x00, 0x00, 0x00, 0x00, 0x00 /* ..... */ }) CreateWordField (BUF, Zero, VMDT) CreateByteField (BUF, 0x02, VPIM) CreateByteField (BUF, 0x03, VUDC) CreateByteField (BUF, 0x04, VUDM) VMDT = SMDT /* \_SB_.PCI0.IDE_.SMDT */ VPIM = SPIM /* \_SB_.PCI0.IDE_.SPIM */ VUDC = SUDC /* \_SB_.PCI0.IDE_.SUDC */ VUDM = SUDM /* \_SB_.PCI0.IDE_.SUDM */ Return (GTF (0xB0, BUF)) } } } } Name (AFCB, Buffer (0x9C) {}) Device (AFD) { Name (_HID, "AFD0001") // _HID: Hardware ID Name (HDD0, 0x80000000) Name (DAT5, Buffer (0x0E) { /* 0000 */ 0x0E, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, /* ........ */ /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ...... */ }) Method (_STA, 0, NotSerialized) // _STA: Status { If ((AFUC == Zero)) { Return (Zero) } Else { Return (0x0F) } } Method (AFCM, 3, NotSerialized) { Arg0 &= 0xFF If ((Arg0 == Zero)) { Return (AFC0 ()) } If ((Arg0 == One)) { Return (AFC1 ()) } If ((Arg0 == 0x02)) { Return (AFC2 (Arg1, Arg2)) } Else { CreateWordField (AFCB, Zero, SSZE) CreateWordField (AFCB, 0x02, VERN) CreateDWordField (AFCB, 0x04, SFUN) SSZE = Zero VERN = Zero SFUN = Zero Return (AFCB) /* \_SB_.PCI0.AFCB */ } } Method (AFC0, 0, NotSerialized) { P80H = 0xAF00 CreateWordField (AFCB, Zero, SSZE) CreateWordField (AFCB, 0x02, VERN) CreateDWordField (AFCB, 0x04, SFUN) SSZE = 0x08 VERN = One SFUN = 0x03 P80H = 0xAE00 Return (AFCB) /* \_SB_.PCI0.AFCB */ } Method (AFC1, 0, NotSerialized) { P80H = 0xAF01 CreateWordField (AFCB, Zero, SSZE) CreateWordField (AFCB, 0x02, ESZ0) CreateWordField (AFCB, 0x04, CCD0) CreateWordField (AFCB, 0x06, EBU0) CreateWordField (AFCB, 0x08, CFG0) CreateWordField (AFCB, 0x0A, PCA0) CreateWordField (AFCB, 0x0C, DCP0) CreateWordField (AFCB, 0x0E, DRA0) ESZ0 = 0x0E EBU0 = 0x02 CFG0 = Zero PCA0 = 0x88 If ((^^SATA.VIDI == 0x43901002)) { EBU0 = One CCD0 = 0x0101 DCP0 = Zero DRA0 = Zero } If ((^^SATA.VIDI == 0x43911002)) { CCD0 = 0x0106 DCP0 = Zero DRA0 = Zero } If ((^^SATA.VIDI == 0x43921002)) { CCD0 = 0x0104 DCP0 = Zero DRA0 = Zero } If ((^^SATA.VIDI == 0x43931002)) { CCD0 = 0x0104 DCP0 = Zero DRA0 = Zero } If ((^^SATA.VIDI == 0x43941002)) { CCD0 = 0x0106 DCP0 = Zero DRA0 = Zero } CreateWordField (AFCB, 0x10, ESZ1) CreateWordField (AFCB, 0x12, CCD1) CreateWordField (AFCB, 0x14, EBU1) CreateWordField (AFCB, 0x16, CFG1) CreateWordField (AFCB, 0x18, PCA1) CreateWordField (AFCB, 0x1A, DCP1) CreateWordField (AFCB, 0x1C, DRA1) ESZ1 = 0x0E EBU1 = 0x02 CFG1 = Zero PCA1 = 0x88 If ((^^SATA.VIDI == 0x43901002)) { EBU1 = One CCD1 = 0x0101 DCP1 = One DRA1 = Zero } If ((^^SATA.VIDI == 0x43911002)) { CCD1 = 0x0106 DCP1 = One DRA1 = Zero } If ((^^SATA.VIDI == 0x43921002)) { CCD1 = 0x0104 DCP1 = Zero DRA1 = Zero } If ((^^SATA.VIDI == 0x43931002)) { CCD1 = 0x0104 DCP1 = Zero DRA1 = Zero } If ((^^SATA.VIDI == 0x43941002)) { CCD1 = 0x0106 DCP1 = One DRA1 = Zero } CreateWordField (AFCB, 0x1E, ESZ2) CreateWordField (AFCB, 0x20, CCD2) CreateWordField (AFCB, 0x22, EBU2) CreateWordField (AFCB, 0x24, CFG2) CreateWordField (AFCB, 0x26, PCA2) CreateWordField (AFCB, 0x28, DCP2) CreateWordField (AFCB, 0x2A, DRA2) ESZ2 = 0x0E EBU2 = 0x02 CFG2 = Zero PCA2 = 0x88 If ((^^SATA.VIDI == 0x43901002)) { EBU2 = One CCD2 = 0x0101 DCP2 = Zero DRA2 = One } If ((^^SATA.VIDI == 0x43911002)) { CCD2 = 0x0106 DCP2 = 0x02 DRA2 = Zero } If ((^^SATA.VIDI == 0x43921002)) { CCD2 = 0x0104 DCP2 = Zero DRA2 = Zero } If ((^^SATA.VIDI == 0x43931002)) { CCD2 = 0x0104 DCP2 = Zero DRA2 = Zero } If ((^^SATA.VIDI == 0x43941002)) { CCD2 = 0x0106 DCP2 = 0x02 DRA2 = Zero } CreateField (AFCB, 0x0240, 0x70, IDX5) CreateByteField (DAT5, 0x07, BUS5) If ((^^AGP.PXEN == 0x80000000)) { BUS5 = 0xFF } ElseIf ((^^AGP.PXID == ^^PB2._ADR)) { Local0 = ^^PB2.SBUS /* \_SB_.PCI0.PB2_.SBUS */ } IDX5 = DAT5 /* \_SB_.PCI0.AFD_.DAT5 */ SSZE = 0x9C P80H = 0xAE01 Return (AFCB) /* \_SB_.PCI0.AFCB */ } Method (AFC2, 2, NotSerialized) { P80H = 0xAF02 CreateDWordField (AFCB, Zero, FLAG) CreateByteField (AFCB, 0x04, PWST) CreateByteField (AFCB, 0x05, DIND) PWST = (Arg0 & 0xFF) DIND = (Arg1 & 0xFF) If ((HDD0 == 0x80000000)) { ^^SMBS.GAAO = Zero ^^SMBS.GAAE = Zero ^^SMBS.MX15 = One ^^SMBS.MX44 = One ^^SMBS.MX16 = One If (^^SATA.IPM0) { ^^SMBS.G15O = One ^^SMBS.G15E = Zero Sleep (0xC8) } If (^^SATA.IPM1) { ^^SMBS.G44O = One ^^SMBS.G44E = Zero Sleep (0xC8) } If (^^SATA.IPM2) { ^^SMBS.G16O = One ^^SMBS.G16E = Zero Sleep (0xC8) } } If ((HDD0 == 0x80000000)) { If (^^SATA.IPM0) { HDD0 = One } Else { HDD0 = Zero } } If ((DIND == Zero)) { ^^SMBS.MX15 = One If ((PWST == Zero)) { If ((^^SATA.VIDI == 0x43901002)) { Notify (^^SATA.PRID.P_D0, 0x03) // Eject Request } If ((^^SATA.VIDI == 0x43911002)) { Notify (^^SATA.PRID, 0x03) // Eject Request } If ((^^SATA.VIDI == 0x43921002)) {} If ((^^SATA.VIDI == 0x43931002)) {} If ((^^SATA.VIDI == 0x43941002)) {} FLAG = Zero } If ((PWST == One)) { ^^SMBS.GAAO = Zero ^^SMBS.GAAE = Zero ^^SMBS.G15O = One ^^SMBS.G15E = Zero Sleep (0x03E8) If ((^^SATA.VIDI == 0x43901002)) { Notify (^^SATA.PRID.P_D0, One) // Device Check } If ((^^SATA.VIDI == 0x43911002)) { Notify (^^SATA.PRID, One) // Device Check } If ((^^SATA.VIDI == 0x43921002)) {} If ((^^SATA.VIDI == 0x43931002)) {} If ((^^SATA.VIDI == 0x43941002)) {} FLAG = One } If ((PWST == 0xFF)) { FLAG = ^^SMBS.G15O /* \_SB_.PCI0.SMBS.G15O */ } } If ((DIND == 0x02)) { ^^SMBS.MX16 = One If ((PWST == Zero)) { If ((^^SATA.VIDI == 0x43901002)) { Notify (^^SATA.PRID.P_D1, 0x03) // Eject Request } If ((^^SATA.VIDI == 0x43911002)) { Notify (^^SATA.SECD, 0x03) // Eject Request } If ((^^SATA.VIDI == 0x43921002)) {} If ((^^SATA.VIDI == 0x43931002)) {} If ((^^SATA.VIDI == 0x43941002)) {} FLAG = Zero } If ((PWST == One)) { ^^SMBS.GAAO = Zero ^^SMBS.GAAE = Zero ^^SMBS.G16O = One ^^SMBS.G16E = Zero Sleep (0x03E8) If ((^^SATA.VIDI == 0x43901002)) { Notify (^^SATA.PRID.P_D1, One) // Device Check } If ((^^SATA.VIDI == 0x43911002)) { Notify (^^SATA.SECD, One) // Device Check } If ((^^SATA.VIDI == 0x43921002)) {} If ((^^SATA.VIDI == 0x43931002)) {} If ((^^SATA.VIDI == 0x43941002)) {} FLAG = One } If ((PWST == 0xFF)) { FLAG = ^^SMBS.G16O /* \_SB_.PCI0.SMBS.G16O */ } } If ((DIND == 0x05)) { If ((^^AGP.PXEN == 0x80000000)) { FLAG = ^^SMBS.G45O /* \_SB_.PCI0.SMBS.G45O */ FLAG |= 0x80 Return (FLAG) /* \_SB_.PCI0.AFD_.AFC2.FLAG */ } If ((PWST == Zero)) { If ((^^AGP.PXMX == 0x80000000)) { Notify (^^PB2.VGA, 0x03) // Eject Request } Else { Notify (^^PB3.VGA, 0x03) // Eject Request } FLAG = Zero } If ((PWST == One)) { ^^AGP.VGA.PX02 (One) If ((^^AGP.PXMX == 0x80000000)) { Notify (^^PB2.VGA, One) // Device Check } Else { Notify (^^PB3.VGA, One) // Device Check } FLAG = One } If ((PWST == 0xFF)) { FLAG = ^^SMBS.G45O /* \_SB_.PCI0.SMBS.G45O */ } } P80H = 0xAE02 Return (FLAG) /* \_SB_.PCI0.AFD_.AFC2.FLAG */ } } Scope (PB2.VGA) { Method (_EJX, 1, NotSerialized) { Sleep (0x28) ^^^AGP.VGA.PX02 (Zero) Sleep (0x28) } } Scope (PB3.VGA) { Method (_EJX, 1, NotSerialized) { Sleep (0x28) ^^^AGP.VGA.PX02 (Zero) Sleep (0x28) } } Device (AMD3) { Name (_ADR, 0x00180003) // _ADR: Address OperationRegion (HTCR, PCI_Config, 0x64, 0x04) Field (HTCR, ByteAcc, NoLock, Preserve) { HTCE, 1, Offset (0x02), HTTL, 7, Offset (0x03), HTHY, 4 } Method (HTCS, 0, NotSerialized) { Local0 = 0x73 Local0 -= 0x34 HTTL = (Local0 * 0x02) Local0 = 0x07 HTHY = (Local0 * 0x02) HTCE = One } } } OperationRegion (PIRQ, SystemIO, 0x0C00, 0x02) Field (PIRQ, ByteAcc, NoLock, Preserve) { PIDX, 8, PDAT, 8 } IndexField (PIDX, PDAT, ByteAcc, NoLock, Preserve) { PIRA, 8, PIRB, 8, PIRC, 8, PIRD, 8, PIRE, 8, PIRF, 8, PIRG, 8, PIRH, 8, Offset (0x10), PIRS, 8, Offset (0x13), HDAD, 8, Offset (0x15), GEC, 8, Offset (0x30), USB1, 8, USB2, 8, USB3, 8, USB4, 8, USB5, 8, USB6, 8, USB7, 8, Offset (0x40), IDE, 8, SATA, 8, Offset (0x50), GPP0, 8, GPP1, 8, GPP2, 8, GPP3, 8 } OperationRegion (KBDD, SystemIO, 0x64, One) Field (KBDD, ByteAcc, NoLock, Preserve) { PD64, 8 } Method (DSPI, 0, NotSerialized) { INTA (0x1F) INTB (0x1F) INTC (0x1F) INTD (0x1F) Local1 = PD64 /* \_SB_.PD64 */ PIRE = 0x1F PIRF = 0x1F PIRG = 0x1F PIRH = 0x1F } Method (INTA, 1, NotSerialized) { PIRA = Arg0 HDAD = Arg0 GEC = Arg0 GPP0 = Arg0 GPP0 = Arg0 } Method (INTB, 1, NotSerialized) { PIRB = Arg0 USB2 = Arg0 USB4 = Arg0 USB6 = Arg0 GPP1 = Arg0 IDE = Arg0 } Method (INTC, 1, NotSerialized) { PIRC = Arg0 USB1 = Arg0 USB3 = Arg0 USB5 = Arg0 USB7 = Arg0 GPP2 = Arg0 } Method (INTD, 1, NotSerialized) { PIRD = Arg0 SATA = Arg0 GPP3 = Arg0 } Name (PRS1, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,10,11,12,14,15} }) Name (BUFA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {15} }) Name (IPRA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {5,10,11} }) Name (IPRB, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {5,10,11} }) Name (IPRC, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {5,10,11} }) Name (IPRD, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {5,10,11} }) Device (LNKA) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRA) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { INTA (0x1F) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRA) /* \_SB_.PIRA */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRA = Local0 } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRB) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { INTB (0x1F) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRB) /* \_SB_.PIRB */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRB = Local0 } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x03) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRC) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { INTC (0x1F) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRC) /* \_SB_.PIRC */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRC = Local0 } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x04) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRD) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { INTD (0x1F) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRD) /* \_SB_.PIRD */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRD = Local0 } } Device (LNKE) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x05) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRE) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRE = 0x1F } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRE) /* \_SB_.PIRE */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRE = Local0 } } Device (LNKF) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x06) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRF) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRF = 0x1F } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRF) /* \_SB_.PIRF */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRF = Local0 } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x07) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRG) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRG = 0x1F } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRG) /* \_SB_.PIRG */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRG = Local0 } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x08) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { If (PIRH) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRS1) /* \_SB_.PRS1 */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { PIRH = 0x1F } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (BUFA, One, IRQX) IRQX = (One << PIRH) /* \_SB_.PIRH */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Local0-- PIRH = Local0 } } Method (GSMI, 1, NotSerialized) { APMD = Arg0 APMC = 0xE4 Stall (0xFF) Stall (0xFF) Stall (0xFF) Stall (0xFF) Stall (0xFF) Stall (0xFF) } Method (S80H, 1, NotSerialized) { APMD = Arg0 APMC = 0xE5 Stall (0xFF) Stall (0xFF) Stall (0xFF) Stall (0xFF) Stall (0xFF) Stall (0xFF) } Method (BSMI, 1, NotSerialized) { APMD = Arg0 APMC = 0xBE Stall (0xFF) } Device (SLPB) { Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */) // _HID: Hardware ID } Device (LID) { Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID Method (_LID, 0, NotSerialized) // _LID: Lid Status { Local0 = (^^PCI0.SMBS.G66I & One) Return (Local0) } Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake { 0x06, 0x03 }) } Scope (\_GPE) { Method (_L06, 0, NotSerialized) // _Lxx: Level-Triggered GPE { Local0 = (\_SB.PCI0.SMBS.G66I & One) If (\_SB.PCI0.SMBS.E06C) { Sleep (0x14) If ((Local0 & One)) { \_SB.PCI0.SMBS.E06C = Zero P80H = 0xC001 } } Else { Sleep (0x14) If (!(Local0 & One)) { \_SB.PCI0.SMBS.E06C = One P80H = 0xC000 } } Notify (\_SB.LID, 0x80) // Status Change } } } }