Last active
January 17, 2020 10:22
-
-
Save spacepluk/2b41bad338563e18c89584a5403342b2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| * Intel ACPI Component Architecture | |
| * AML/ASL+ Disassembler version 20191018 (64-bit version) | |
| * Copyright (c) 2000 - 2019 Intel Corporation | |
| * | |
| * Disassembling to non-symbolic legacy ASL operators | |
| * | |
| * Disassembly of SSDT-6-OptTabl.aml, Fri Jan 17 10:40:26 2020 | |
| * | |
| * Original Table Header: | |
| * Signature "SSDT" | |
| * Length 0x0000144E (5198) | |
| * Revision 0x01 | |
| * Checksum 0xAA | |
| * OEM ID "OptRef" | |
| * OEM Table ID "OptTabl" | |
| * OEM Revision 0x00001000 (4096) | |
| * Compiler ID "INTL" | |
| * Compiler Version 0x20120711 (538052369) | |
| */ | |
| DefinitionBlock ("", "SSDT", 1, "OptRef", "OptTabl", 0x00001000) | |
| { | |
| /* | |
| * iASL Warning: There were 5 external control methods found during | |
| * disassembly, but only 3 were resolved (2 unresolved). Additional | |
| * ACPI tables may be required to properly disassemble the code. This | |
| * resulting disassembler output file may not compile because the | |
| * disassembler did not know how many arguments to assign to the | |
| * unresolved methods. Note: SSDTs can be dynamically loaded at | |
| * runtime and may or may not be available via the host OS. | |
| * | |
| * To specify the tables needed to resolve external control method | |
| * references, the -e option can be used to specify the filenames. | |
| * Example iASL invocations: | |
| * iasl -e ssdt1.aml ssdt2.aml ssdt3.aml -d dsdt.aml | |
| * iasl -e dsdt.aml ssdt2.aml -d ssdt1.aml | |
| * iasl -e ssdt*.aml -d dsdt.aml | |
| * | |
| * In addition, the -fe option can be used to specify a file containing | |
| * control method external declarations with the associated method | |
| * argument counts. Each line of the file must be of the form: | |
| * External (<method pathname>, MethodObj, <argument count>) | |
| * Invocation: | |
| * iasl -fe refs.txt -d dsdt.aml | |
| * | |
| * The following methods were unresolved and many not compile properly | |
| * because the disassembler had to guess at the number of arguments | |
| * required for each: | |
| */ | |
| External (_PR_.CPU0, UnknownObj) | |
| External (_PR_.CPU0._PPC, UnknownObj) | |
| External (_PR_.CPU0._PSS, IntObj) | |
| External (_PR_.CPU0._PTC, UnknownObj) | |
| External (_PR_.CPU0._TSS, IntObj) | |
| External (_SB_.PCI0, DeviceObj) | |
| External (_SB_.PCI0.GFX0, DeviceObj) | |
| External (_SB_.PCI0.GFX0._DSM, IntObj) | |
| External (_SB_.PCI0.LPCB.EC0_.BMRD, IntObj) | |
| External (_SB_.PCI0.LPCB.EC0_.BMWD, UnknownObj) | |
| External (_SB_.PCI0.LPCB.H_EC.GTVR, IntObj) | |
| External (_SB_.PCI0.PEG0, DeviceObj) | |
| External (_SB_.PCI0.PEG0.PEGP, DeviceObj) | |
| External (_SB_.PCI0.PEG0.PEGP.SGOF, MethodObj) // 0 Arguments | |
| External (_SB_.PCI0.PEG0.PEGP.SGON, MethodObj) // 0 Arguments | |
| External (_SB_.PCI0.PEG0.PEGP.SGST, MethodObj) // 0 Arguments | |
| External (DID1, IntObj) | |
| External (DID2, IntObj) | |
| External (DID3, IntObj) | |
| External (DID4, IntObj) | |
| External (DID5, IntObj) | |
| External (DID6, IntObj) | |
| External (DID7, IntObj) | |
| External (DID8, UnknownObj) | |
| External (EBAS, UnknownObj) | |
| External (NVGA, MethodObj) // Warning: Unknown method, guessing 1 arguments | |
| External (NVHA, MethodObj) // Warning: Unknown method, guessing 1 arguments | |
| External (NXD1, UnknownObj) | |
| External (NXD2, UnknownObj) | |
| External (NXD3, UnknownObj) | |
| External (NXD4, UnknownObj) | |
| External (NXD5, UnknownObj) | |
| External (NXD6, UnknownObj) | |
| External (NXD7, UnknownObj) | |
| External (NXD8, UnknownObj) | |
| External (P8XH, UnknownObj) | |
| External (SGFL, UnknownObj) | |
| External (SSMP, UnknownObj) | |
| Scope (\_SB.PCI0) | |
| { | |
| Name (OTM, "OTMACPI 2010-Mar-09 12:08:26") | |
| } | |
| Scope (\_SB.PCI0.PEG0.PEGP) | |
| { | |
| OperationRegion (PCI2, SystemMemory, EBAS(0x0500)) | |
| Field (PCI2, DWordAcc, Lock, Preserve) | |
| { | |
| Offset (0x04), | |
| CMDR, 8, | |
| VGAR, 2000, | |
| Offset (0x48B), | |
| , 1, | |
| NHDA, 1 | |
| } | |
| Name (VGAB, Buffer (0xFA) | |
| { | |
| 0x00 // . | |
| }) | |
| Name (GPRF, Zero) | |
| OperationRegion (NVHM, SystemMemory, NVHA (0x00020400), Field (NVHM, DWordAcc, NoLock, Preserve) | |
| { | |
| NVSG, 128, | |
| NVSZ, 32, | |
| NVVR, 32, | |
| NVHO, 32, | |
| RVBS, 32, | |
| RBF1, 262144, | |
| RBF2, 262144, | |
| RBF3, 262144, | |
| RBF4, 262144, | |
| MXML, 32, | |
| MXM3, 1600 | |
| }) | |
| Name (OPCE, 0x02) | |
| Name (DGPS, Zero) | |
| Name (_PSC, Zero) // _PSC: Power State Current | |
| Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 | |
| { | |
| Store (Zero, _PSC) /* \_SB_.PCI0.PEG0.PEGP._PSC */ | |
| If (LNotEqual (DGPS, Zero)) | |
| { | |
| _ON () | |
| Store (Zero, DGPS) /* \_SB_.PCI0.PEG0.PEGP.DGPS */ | |
| Store (Zero, NHDA) /* \_SB_.PCI0.PEG0.PEGP.NHDA */ | |
| } | |
| } | |
| Method (_PS1, 0, NotSerialized) // _PS1: Power State 1 | |
| { | |
| Store (One, _PSC) /* \_SB_.PCI0.PEG0.PEGP._PSC */ | |
| } | |
| Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 | |
| { | |
| If (LEqual (OPCE, 0x03)) | |
| { | |
| If (LEqual (DGPS, Zero)) | |
| { | |
| _OFF () | |
| Store (One, DGPS) /* \_SB_.PCI0.PEG0.PEGP.DGPS */ | |
| } | |
| Store (0x02, OPCE) /* \_SB_.PCI0.PEG0.PEGP.OPCE */ | |
| } | |
| Store (0x03, _PSC) /* \_SB_.PCI0.PEG0.PEGP._PSC */ | |
| } | |
| Method (_STA, 0, NotSerialized) // _STA: Status | |
| { | |
| Return (0x0F) | |
| } | |
| Method (_ROM, 2, NotSerialized) // _ROM: Read-Only Memory | |
| { | |
| Store (Arg0, Local0) | |
| Store (Arg1, Local1) | |
| If (LGreater (Local1, 0x1000)) | |
| { | |
| Store (0x1000, Local1) | |
| } | |
| If (LGreater (Local0, 0x00020000)) | |
| { | |
| Return (Buffer (Local1) | |
| { | |
| 0x00 // . | |
| }) | |
| } | |
| Multiply (Local1, 0x08, Local3) | |
| Name (ROM1, Buffer (0x8000) | |
| { | |
| 0x00 // . | |
| }) | |
| Name (ROM2, Buffer (Local1) | |
| { | |
| 0x00 // . | |
| }) | |
| If (LLess (Local0, 0x8000)) | |
| { | |
| Store (RBF1, ROM1) /* \_SB_.PCI0.PEG0.PEGP._ROM.ROM1 */ | |
| } | |
| ElseIf (LLess (Local0, 0x00010000)) | |
| { | |
| Subtract (Local0, 0x8000, Local0) | |
| Store (RBF2, ROM1) /* \_SB_.PCI0.PEG0.PEGP._ROM.ROM1 */ | |
| } | |
| ElseIf (LLess (Local0, 0x00018000)) | |
| { | |
| Subtract (Local0, 0x00010000, Local0) | |
| Store (RBF3, ROM1) /* \_SB_.PCI0.PEG0.PEGP._ROM.ROM1 */ | |
| } | |
| ElseIf (LLess (Local0, 0x00020000)) | |
| { | |
| Subtract (Local0, 0x00018000, Local0) | |
| Store (RBF4, ROM1) /* \_SB_.PCI0.PEG0.PEGP._ROM.ROM1 */ | |
| } | |
| Multiply (Local0, 0x08, Local2) | |
| CreateField (ROM1, Local2, Local3, TMPB) | |
| Store (TMPB, ROM2) /* \_SB_.PCI0.PEG0.PEGP._ROM.ROM2 */ | |
| Return (ROM2) /* \_SB_.PCI0.PEG0.PEGP._ROM.ROM2 */ | |
| } | |
| Method (HDSM, 4, Serialized) | |
| { | |
| Return (0x80000001) | |
| } | |
| Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method | |
| { | |
| CreateByteField (Arg0, 0x03, GUID) | |
| Return (\_SB.PCI0.GFX0.HDSM (Arg0, Arg1, Arg2, Arg3)) | |
| } | |
| Name (CTXT, Zero) | |
| Method (_ON, 0, Serialized) // _ON_: Power On | |
| { | |
| SGON () | |
| If (LNotEqual (GPRF, One)) | |
| { | |
| Store (CMDR, Local0) | |
| Store (Zero, CMDR) /* \_SB_.PCI0.PEG0.PEGP.CMDR */ | |
| Store (VGAB, VGAR) /* \_SB_.PCI0.PEG0.PEGP.VGAR */ | |
| Store (0x06, CMDR) /* \_SB_.PCI0.PEG0.PEGP.CMDR */ | |
| Store (Zero, NHDA) /* \_SB_.PCI0.PEG0.PEGP.NHDA */ | |
| Store (Local0, CMDR) /* \_SB_.PCI0.PEG0.PEGP.CMDR */ | |
| } | |
| Store (0xB7, SSMP) /* External reference */ | |
| } | |
| Method (_OFF, 0, Serialized) // _OFF: Power Off | |
| { | |
| If (LEqual (CTXT, Zero)) | |
| { | |
| If (LNotEqual (GPRF, One)) | |
| { | |
| Store (VGAR, VGAB) /* \_SB_.PCI0.PEG0.PEGP.VGAB */ | |
| } | |
| Store (One, CTXT) /* \_SB_.PCI0.PEG0.PEGP.CTXT */ | |
| } | |
| SGOF () | |
| } | |
| } | |
| Scope (\_SB.PCI0.GFX0) | |
| { | |
| Method (_INI, 0, NotSerialized) // _INI: Initialize | |
| { | |
| Store (DID1, Index (TLPK, Zero)) | |
| Store (DID2, Index (TLPK, 0x02)) | |
| Store (DID3, Index (TLPK, 0x04)) | |
| Store (DID4, Index (TLPK, 0x06)) | |
| Store (DID5, Index (TLPK, 0x08)) | |
| Store (DID6, Index (TLPK, 0x0A)) | |
| Store (DID7, Index (TLPK, 0x0C)) | |
| Store (DID2, Index (TLPK, 0x0E)) | |
| Store (DID1, Index (TLPK, 0x0F)) | |
| Store (DID2, Index (TLPK, 0x11)) | |
| Store (DID3, Index (TLPK, 0x12)) | |
| Store (DID2, Index (TLPK, 0x14)) | |
| Store (DID4, Index (TLPK, 0x15)) | |
| Store (DID2, Index (TLPK, 0x17)) | |
| Store (DID5, Index (TLPK, 0x18)) | |
| Store (DID2, Index (TLPK, 0x1A)) | |
| Store (DID6, Index (TLPK, 0x1B)) | |
| Store (DID2, Index (TLPK, 0x1D)) | |
| Store (DID7, Index (TLPK, 0x1E)) | |
| } | |
| OperationRegion (NVIG, SystemMemory, NVGA (0x45), Field (NVIG, DWordAcc, NoLock, Preserve) | |
| { | |
| NISG, 128, | |
| NISZ, 32, | |
| NIVR, 32, | |
| GPSS, 32, | |
| GACD, 16, | |
| GATD, 16, | |
| LDES, 8, | |
| DKST, 8, | |
| DACE, 8, | |
| DHPE, 8, | |
| DHPS, 8, | |
| SGNC, 8, | |
| GPPO, 8, | |
| USPM, 8, | |
| GPSP, 8, | |
| TLSN, 8, | |
| DOSF, 8, | |
| ELCL, 16 | |
| }) | |
| Name (TLPK, Package (0x20) | |
| { | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| Ones, | |
| 0x2C, | |
| Ones, | |
| Ones, | |
| 0x2C | |
| }) | |
| Method (INDL, 0, Serialized) | |
| { | |
| Store (Zero, NXD1) /* External reference */ | |
| Store (Zero, NXD2) /* External reference */ | |
| Store (Zero, NXD3) /* External reference */ | |
| Store (Zero, NXD4) /* External reference */ | |
| Store (Zero, NXD5) /* External reference */ | |
| Store (Zero, NXD6) /* External reference */ | |
| Store (Zero, NXD7) /* External reference */ | |
| Store (Zero, NXD8) /* External reference */ | |
| } | |
| Method (SND1, 1, Serialized) | |
| { | |
| If (LEqual (Arg0, DID1)) | |
| { | |
| Store (One, NXD1) /* External reference */ | |
| } | |
| If (LEqual (Arg0, DID2)) | |
| { | |
| Store (One, NXD2) /* External reference */ | |
| } | |
| If (LEqual (Arg0, DID3)) | |
| { | |
| Store (One, NXD3) /* External reference */ | |
| } | |
| If (LEqual (Arg0, DID4)) | |
| { | |
| Store (One, NXD4) /* External reference */ | |
| } | |
| If (LEqual (Arg0, DID5)) | |
| { | |
| Store (One, NXD5) /* External reference */ | |
| } | |
| If (LEqual (Arg0, DID6)) | |
| { | |
| Store (One, NXD6) /* External reference */ | |
| } | |
| If (LEqual (Arg0, DID7)) | |
| { | |
| Store (One, NXD7) /* External reference */ | |
| } | |
| If (LEqual (Arg0, DID8)) | |
| { | |
| Store (One, NXD8) /* External reference */ | |
| } | |
| } | |
| Method (SNXD, 1, Serialized) | |
| { | |
| INDL () | |
| Store (One, Local0) | |
| Store (Zero, Local1) | |
| While (LLess (Local0, Arg0)) | |
| { | |
| If (LEqual (DerefOf (Index (TLPK, Local1)), 0x2C)) | |
| { | |
| Increment (Local0) | |
| } | |
| Increment (Local1) | |
| } | |
| SND1 (DerefOf (Index (TLPK, Local1))) | |
| Increment (Local1) | |
| If (LNotEqual (DerefOf (Index (TLPK, Local1)), 0x2C)) | |
| { | |
| SND1 (DerefOf (Index (TLPK, Local1))) | |
| } | |
| } | |
| Method (CTOI, 1, Serialized) | |
| { | |
| Switch (ToInteger (Arg0)) | |
| { | |
| Case (One) | |
| { | |
| Return (One) | |
| } | |
| Case (0x02) | |
| { | |
| Return (0x02) | |
| } | |
| Case (0x04) | |
| { | |
| Return (0x03) | |
| } | |
| Case (0x08) | |
| { | |
| Return (0x04) | |
| } | |
| Case (0x10) | |
| { | |
| Return (0x05) | |
| } | |
| Case (0x20) | |
| { | |
| Return (0x06) | |
| } | |
| Case (0x40) | |
| { | |
| Return (0x07) | |
| } | |
| Case (0x03) | |
| { | |
| Return (0x08) | |
| } | |
| Case (0x06) | |
| { | |
| Return (0x09) | |
| } | |
| Case (0x0A) | |
| { | |
| Return (0x0A) | |
| } | |
| Case (0x12) | |
| { | |
| Return (0x0B) | |
| } | |
| Case (0x22) | |
| { | |
| Return (0x0C) | |
| } | |
| Case (0x42) | |
| { | |
| Return (0x0D) | |
| } | |
| Default | |
| { | |
| Return (One) | |
| } | |
| } | |
| } | |
| Method (HDSM, 4, Serialized) | |
| { | |
| If (LEqual (Arg0, ToUUID ("a3132d01-8cda-49ba-a52e-bc9d46df6b81"))) | |
| { | |
| Return (\_SB.PCI0.PEG0.PEGP.GPS (Arg0, Arg1, Arg2, Arg3)) | |
| } | |
| Name (SGCI, Zero) | |
| Name (NBCI, Zero) | |
| Name (OPCI, Zero) | |
| Name (BUFF, Zero) | |
| If (LEqual (Arg0, ToUUID ("a486d8f8-0bda-471b-a72b-6042a6b5bee0"))) | |
| { | |
| Store (One, OPCI) /* \_SB_.PCI0.GFX0.HDSM.OPCI */ | |
| } | |
| If (LOr (OPCI, LOr (SGCI, NBCI))) | |
| { | |
| If (OPCI) | |
| { | |
| If (LNotEqual (Arg1, 0x0100)) | |
| { | |
| Return (0x80000002) | |
| } | |
| } | |
| ElseIf (LNotEqual (Arg1, 0x0102)) | |
| { | |
| Return (0x80000002) | |
| } | |
| If (LEqual (Arg2, Zero)) | |
| { | |
| If (SGCI) | |
| { | |
| Return (Buffer (0x04) | |
| { | |
| 0x7F, 0x00, 0x04, 0x00 // .... | |
| }) | |
| } | |
| ElseIf (NBCI) | |
| { | |
| Return (Buffer (0x04) | |
| { | |
| 0x73, 0x00, 0x04, 0x00 // s... | |
| }) | |
| } | |
| ElseIf (OPCI) | |
| { | |
| Return (Buffer (0x04) | |
| { | |
| 0x61, 0x18, 0x03, 0x0C // a... | |
| }) | |
| } | |
| } | |
| If (LEqual (Arg2, One)) | |
| { | |
| Name (TEMP, Buffer (0x04) | |
| { | |
| 0x00, 0x00, 0x00, 0x00 // .... | |
| }) | |
| CreateDWordField (TEMP, Zero, STS0) | |
| If (SGCI) | |
| { | |
| Or (STS0, 0x0B0000BF, STS0) /* \_SB_.PCI0.GFX0.HDSM.STS0 */ | |
| Or (STS0, ShiftLeft (SGNC, 0x08, SGNC) /* \_SB_.PCI0.GFX0.SGNC */, STS0) /* \_SB_.PCI0.GFX0.HDSM.STS0 */ | |
| } | |
| Else | |
| { | |
| Or (STS0, Zero, STS0) /* \_SB_.PCI0.GFX0.HDSM.STS0 */ | |
| } | |
| Return (TEMP) /* \_SB_.PCI0.GFX0.HDSM.TEMP */ | |
| } | |
| If (LEqual (Arg2, 0x02)) | |
| { | |
| Name (TMP1, Buffer (0x04) | |
| { | |
| 0x00, 0x00, 0x00, 0x00 // .... | |
| }) | |
| CreateDWordField (TMP1, Zero, STS1) | |
| ToInteger (Arg3, Local0) | |
| And (Local0, 0x1F, Local0) | |
| If (And (Local0, 0x10)) | |
| { | |
| And (Local0, 0x0F, Local0) | |
| Store (Local0, GPSS) /* \_SB_.PCI0.GFX0.GPSS */ | |
| Notify (\_SB.PCI0.GFX0, 0xD9) // Hardware-Specific | |
| Notify (\_SB.PCI0.WMI1, 0xD9) // Hardware-Specific | |
| } | |
| Else | |
| { | |
| And (Local0, 0x0F, Local0) | |
| If (LEqual (GPPO, One)) | |
| { | |
| Store (GPSS, Local0) | |
| Or (Local0, 0x10, Local0) | |
| Store (Zero, GPPO) /* \_SB_.PCI0.GFX0.GPPO */ | |
| } | |
| } | |
| Or (STS1, Local0, STS1) /* \_SB_.PCI0.GFX0.HDSM.STS1 */ | |
| Return (TMP1) /* \_SB_.PCI0.GFX0.HDSM.TMP1 */ | |
| } | |
| If (LEqual (Arg2, 0x03)) | |
| { | |
| Name (TMP2, Buffer (0x04) | |
| { | |
| 0x00, 0x00, 0x00, 0x00 // .... | |
| }) | |
| CreateDWordField (TMP2, Zero, STS2) | |
| ToInteger (Arg3, Local0) | |
| And (Local0, 0x03, Local0) | |
| If (LEqual (Local0, Zero)) | |
| { | |
| \_SB.PCI0.PEG0.PEGP.SGST () | |
| } | |
| If (LEqual (Local0, One)) | |
| { | |
| \_SB.PCI0.PEG0.PEGP.SGON () | |
| } | |
| If (LEqual (Local0, 0x02)) | |
| { | |
| \_SB.PCI0.PEG0.PEGP.SGOF () | |
| } | |
| If (LEqual (\_SB.PCI0.PEG0.PEGP.SGST (), 0x0F)) | |
| { | |
| Or (STS2, One, STS2) /* \_SB_.PCI0.GFX0.HDSM.STS2 */ | |
| } | |
| Return (TMP2) /* \_SB_.PCI0.GFX0.HDSM.TMP2 */ | |
| } | |
| If (LEqual (Arg2, 0x04)) | |
| { | |
| Name (TMP3, Buffer (0x04) | |
| { | |
| 0x00, 0x00, 0x00, 0x00 // .... | |
| }) | |
| CreateDWordField (TMP3, Zero, STS3) | |
| ToInteger (Arg3, Local0) | |
| Store (Local0, Local1) | |
| ShiftRight (Local0, 0x10, Local0) | |
| And (Local0, One, USPM) /* \_SB_.PCI0.GFX0.USPM */ | |
| ShiftRight (Local1, 0x0D, Local1) | |
| And (Local1, 0x03, Local1) | |
| If (LNotEqual (Local1, GPSP)) | |
| { | |
| If (LEqual (USPM, One)) | |
| { | |
| Store (Local1, GPSP) /* \_SB_.PCI0.GFX0.GPSP */ | |
| } | |
| Else | |
| { | |
| Store (GPSP, Local1) | |
| Or (STS3, 0x8000, STS3) /* \_SB_.PCI0.GFX0.HDSM.STS3 */ | |
| } | |
| } | |
| Or (STS3, ShiftLeft (Local1, 0x0D), STS3) /* \_SB_.PCI0.GFX0.HDSM.STS3 */ | |
| Return (TMP3) /* \_SB_.PCI0.GFX0.HDSM.TMP3 */ | |
| } | |
| If (LEqual (Arg2, 0x05)) | |
| { | |
| Name (TMP4, Buffer (0x04) | |
| { | |
| 0x00, 0x00, 0x00, 0x00 // .... | |
| }) | |
| CreateDWordField (TMP4, Zero, STS4) | |
| ToInteger (Arg3, Local0) | |
| If (And (Local0, 0x80000000)) | |
| { | |
| Store (And (ShiftRight (Local0, 0x19), 0x1F), TLSN) /* \_SB_.PCI0.GFX0.TLSN */ | |
| If (And (Local0, 0x40000000)) | |
| { | |
| Store (One, DOSF) /* \_SB_.PCI0.GFX0.DOSF */ | |
| } | |
| } | |
| If (And (Local0, 0x01000000)) | |
| { | |
| Store (And (ShiftRight (Local0, 0x0C), 0x0FFF), GACD) /* \_SB_.PCI0.GFX0.GACD */ | |
| Store (And (Local0, 0x0FFF), GATD) /* \_SB_.PCI0.GFX0.GATD */ | |
| Store (CTOI (GACD), TLSN) /* \_SB_.PCI0.GFX0.TLSN */ | |
| Increment (TLSN) | |
| If (LGreater (TLSN, 0x0D)) | |
| { | |
| Store (One, TLSN) /* \_SB_.PCI0.GFX0.TLSN */ | |
| } | |
| SNXD (TLSN) | |
| } | |
| Or (STS4, ShiftLeft (DHPE, 0x15), STS4) /* \_SB_.PCI0.GFX0.HDSM.STS4 */ | |
| Or (STS4, ShiftLeft (DHPS, 0x14), STS4) /* \_SB_.PCI0.GFX0.HDSM.STS4 */ | |
| Or (STS4, ShiftLeft (TLSN, 0x08), STS4) /* \_SB_.PCI0.GFX0.HDSM.STS4 */ | |
| Or (STS4, ShiftLeft (DKST, 0x05), STS4) /* \_SB_.PCI0.GFX0.HDSM.STS4 */ | |
| Or (STS4, ShiftLeft (LDES, 0x04), STS4) /* \_SB_.PCI0.GFX0.HDSM.STS4 */ | |
| Or (STS4, DACE, STS4) /* \_SB_.PCI0.GFX0.HDSM.STS4 */ | |
| Store (Zero, LDES) /* \_SB_.PCI0.GFX0.LDES */ | |
| Store (Zero, DHPS) /* \_SB_.PCI0.GFX0.DHPS */ | |
| Store (Zero, DHPE) /* \_SB_.PCI0.GFX0.DHPE */ | |
| Store (Zero, DACE) /* \_SB_.PCI0.GFX0.DACE */ | |
| Return (TMP4) /* \_SB_.PCI0.GFX0.HDSM.TMP4 */ | |
| } | |
| If (LEqual (Arg2, 0x06)) | |
| { | |
| Return (TLPK) /* \_SB_.PCI0.GFX0.TLPK */ | |
| } | |
| If (LEqual (Arg2, 0x10)) | |
| { | |
| CreateWordField (Arg3, 0x02, USRG) | |
| Name (OPVK, Buffer (0xE6) | |
| { | |
| /* 0000 */ 0xE4, 0x42, 0x5F, 0x14, 0x36, 0x26, 0x16, 0x37, // .B_.6&.7 | |
| /* 0008 */ 0x4B, 0x56, 0xE6, 0x00, 0x00, 0x00, 0x01, 0x00, // KV...... | |
| /* 0010 */ 0x31, 0x34, 0x38, 0x35, 0x39, 0x37, 0x34, 0x35, // 14859745 | |
| /* 0018 */ 0x36, 0x39, 0x38, 0x35, 0x47, 0x65, 0x6E, 0x75, // 6985Genu | |
| /* 0020 */ 0x69, 0x6E, 0x65, 0x20, 0x4E, 0x56, 0x49, 0x44, // ine NVID | |
| /* 0028 */ 0x49, 0x41, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, // IA Certi | |
| /* 0030 */ 0x66, 0x69, 0x65, 0x64, 0x20, 0x4F, 0x70, 0x74, // fied Opt | |
| /* 0038 */ 0x69, 0x6D, 0x75, 0x73, 0x20, 0x52, 0x65, 0x61, // imus Rea | |
| /* 0040 */ 0x64, 0x79, 0x20, 0x4D, 0x6F, 0x74, 0x68, 0x65, // dy Mothe | |
| /* 0048 */ 0x72, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x20, 0x66, // rboard f | |
| /* 0050 */ 0x6F, 0x72, 0x20, 0x37, 0x33, 0x36, 0x30, 0x31, // or 73601 | |
| /* 0058 */ 0x39, 0x5F, 0x4D, 0x49, 0x52, 0x63, 0x20, 0x20, // 9_MIRc | |
| /* 0060 */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // | |
| /* 0068 */ 0x2D, 0x20, 0x3C, 0x34, 0x27, 0x21, 0x58, 0x29, // - <4'!X) | |
| /* 0070 */ 0x57, 0x27, 0x58, 0x20, 0x27, 0x25, 0x59, 0x5D, // W'X '%Y] | |
| /* 0078 */ 0x31, 0x29, 0x3A, 0x2A, 0x26, 0x39, 0x59, 0x43, // 1):*&9YC | |
| /* 0080 */ 0x56, 0x3B, 0x58, 0x56, 0x58, 0x3D, 0x59, 0x4E, // V;XVX=YN | |
| /* 0088 */ 0x3B, 0x3A, 0x35, 0x44, 0x25, 0x42, 0x5A, 0x48, // ;:5D%BZH | |
| /* 0090 */ 0x55, 0x3A, 0x58, 0x4C, 0x25, 0x48, 0x54, 0x21, // U:XL%HT! | |
| /* 0098 */ 0x35, 0x4B, 0x4D, 0x37, 0x2C, 0x3C, 0x20, 0x2D, // 5KM7,< - | |
| /* 00A0 */ 0x20, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, // Copyrig | |
| /* 00A8 */ 0x68, 0x74, 0x20, 0x32, 0x30, 0x31, 0x30, 0x20, // ht 2010 | |
| /* 00B0 */ 0x4E, 0x56, 0x49, 0x44, 0x49, 0x41, 0x20, 0x43, // NVIDIA C | |
| /* 00B8 */ 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, // orporati | |
| /* 00C0 */ 0x6F, 0x6E, 0x20, 0x41, 0x6C, 0x6C, 0x20, 0x52, // on All R | |
| /* 00C8 */ 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x52, 0x65, // ights Re | |
| /* 00D0 */ 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2D, 0x31, // served-1 | |
| /* 00D8 */ 0x34, 0x38, 0x35, 0x39, 0x37, 0x34, 0x35, 0x36, // 48597456 | |
| /* 00E0 */ 0x39, 0x38, 0x35, 0x28, 0x52, 0x29 // 985(R) | |
| }) | |
| If (LEqual (USRG, 0x564B)) | |
| { | |
| Return (OPVK) /* \_SB_.PCI0.GFX0.HDSM.OPVK */ | |
| } | |
| Return (Zero) | |
| } | |
| If (LEqual (Arg2, 0x11)) | |
| { | |
| Return (Zero) | |
| } | |
| If (LEqual (Arg2, 0x12)) | |
| { | |
| Return (Package (0x0A) | |
| { | |
| 0xD0, | |
| ToUUID ("921a2f40-0dc4-402d-ac18-b48444ef9ed2"), | |
| 0xD9, | |
| ToUUID ("c12ad361-9fa9-4c74-901f-95cb0945cf3e"), | |
| 0xDB, | |
| ToUUID ("42848006-8886-490e-8c72-2bdca93a8a09"), | |
| 0xEF, | |
| ToUUID ("b3e485d2-3cc1-4b54-8f31-77ba2fdc9ebe"), | |
| 0xF0, | |
| ToUUID ("360d6fb6-1d4e-4fa6-b848-1be33dd8ec7b") | |
| }) | |
| } | |
| If (LEqual (Arg2, 0x1A)) | |
| { | |
| CreateField (Arg3, 0x18, 0x02, OMPR) | |
| CreateField (Arg3, Zero, One, FLCH) | |
| CreateField (Arg3, One, One, DVSR) | |
| CreateField (Arg3, 0x02, One, DVSC) | |
| If (ToInteger (FLCH)) | |
| { | |
| Store (OMPR, \_SB.PCI0.PEG0.PEGP.OPCE) | |
| } | |
| Store (Buffer (0x04) | |
| { | |
| 0x00, 0x00, 0x00, 0x00 // .... | |
| }, Local0) | |
| CreateField (Local0, Zero, One, OPEN) | |
| CreateField (Local0, 0x03, 0x02, CGCS) | |
| CreateField (Local0, 0x06, One, SHPC) | |
| CreateField (Local0, 0x08, One, SNSR) | |
| CreateField (Local0, 0x18, 0x03, DGPC) | |
| CreateField (Local0, 0x1B, 0x02, HDAC) | |
| Store (One, OPEN) /* \_SB_.PCI0.GFX0.HDSM.OPEN */ | |
| Store (One, SHPC) /* \_SB_.PCI0.GFX0.HDSM.SHPC */ | |
| Store (0x02, HDAC) /* \_SB_.PCI0.GFX0.HDSM.HDAC */ | |
| Store (One, DGPC) /* \_SB_.PCI0.GFX0.HDSM.DGPC */ | |
| If (ToInteger (DVSC)) | |
| { | |
| If (ToInteger (DVSR)) | |
| { | |
| Store (One, \_SB.PCI0.PEG0.PEGP.GPRF) | |
| } | |
| Else | |
| { | |
| Store (Zero, \_SB.PCI0.PEG0.PEGP.GPRF) | |
| } | |
| } | |
| Store (\_SB.PCI0.PEG0.PEGP.GPRF, SNSR) /* \_SB_.PCI0.GFX0.HDSM.SNSR */ | |
| If (LNotEqual (\_SB.PCI0.PEG0.PEGP.SGST (), Zero)) | |
| { | |
| Store (0x03, CGCS) /* \_SB_.PCI0.GFX0.HDSM.CGCS */ | |
| } | |
| Return (Local0) | |
| } | |
| If (LEqual (Arg2, 0x1B)) | |
| { | |
| ToInteger (Arg3, Local0) | |
| If (And (Local0, 0x02)) | |
| { | |
| Store (Zero, BUFF) /* \_SB_.PCI0.GFX0.HDSM.BUFF */ | |
| If (And (Local0, One)) | |
| { | |
| Store (One, BUFF) /* \_SB_.PCI0.GFX0.HDSM.BUFF */ | |
| } | |
| } | |
| And (SGFL, 0xFFFFFFFD, SGFL) /* External reference */ | |
| Or (SGFL, ShiftLeft (BUFF, One), SGFL) /* External reference */ | |
| Store (0xB6, SSMP) /* External reference */ | |
| Return (Local0) | |
| } | |
| Return (0x80000002) | |
| } | |
| Return (0x80000001) | |
| } | |
| } | |
| Scope (\_SB.PCI0) | |
| { | |
| Name (GPS, "GPSACPI 2012-Aug-12 14:56:05") | |
| } | |
| Scope (\_SB.PCI0.PEG0.PEGP) | |
| { | |
| Name (PSAP, Zero) | |
| Name (ECBF, Buffer (0x14){}) | |
| CreateDWordField (ECBF, Zero, EDS1) | |
| CreateDWordField (ECBF, 0x04, EDS2) | |
| CreateDWordField (ECBF, 0x08, EDS3) | |
| CreateDWordField (ECBF, 0x0C, EDS4) | |
| CreateDWordField (ECBF, 0x10, EPDT) | |
| Name (GPSP, Buffer (0x24){}) | |
| CreateDWordField (GPSP, Zero, RETN) | |
| CreateDWordField (GPSP, 0x04, VRV1) | |
| CreateDWordField (GPSP, 0x08, TGPU) | |
| CreateDWordField (GPSP, 0x0C, PDTS) | |
| CreateDWordField (GPSP, 0x10, SFAN) | |
| CreateDWordField (GPSP, 0x14, SKNT) | |
| CreateDWordField (GPSP, 0x18, CPUE) | |
| CreateDWordField (GPSP, 0x1C, TMP1) | |
| CreateDWordField (GPSP, 0x20, TMP2) | |
| Name (NLIM, Zero) | |
| Name (PSCP, Zero) | |
| Method (GPS, 4, Serialized) | |
| { | |
| Store ("------- GPS DSM --------", Debug) | |
| If (LNotEqual (Arg1, 0x0100)) | |
| { | |
| Return (0x80000002) | |
| } | |
| Switch (ToInteger (Arg2)) | |
| { | |
| Case (Zero) | |
| { | |
| Name (FMSK, Buffer (0x08) | |
| { | |
| 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF // ........ | |
| }) | |
| Store (Buffer (0x08) | |
| { | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........ | |
| }, Local0) | |
| Divide (Zero, 0x08, Local2, Local1) | |
| ShiftLeft (One, Local2, Local2) | |
| Or (DerefOf (Index (Local0, Local1)), Local2, Index (Local0, Local1)) | |
| Divide (0x13, 0x08, Local2, Local1) | |
| ShiftLeft (One, Local2, Local2) | |
| Or (DerefOf (Index (Local0, Local1)), Local2, Index (Local0, Local1)) | |
| Divide (0x20, 0x08, Local2, Local1) | |
| ShiftLeft (One, Local2, Local2) | |
| Or (DerefOf (Index (Local0, Local1)), Local2, Index (Local0, Local1)) | |
| Divide (0x21, 0x08, Local2, Local1) | |
| ShiftLeft (One, Local2, Local2) | |
| Or (DerefOf (Index (Local0, Local1)), Local2, Index (Local0, Local1)) | |
| Divide (0x22, 0x08, Local2, Local1) | |
| ShiftLeft (One, Local2, Local2) | |
| Or (DerefOf (Index (Local0, Local1)), Local2, Index (Local0, Local1)) | |
| Divide (0x23, 0x08, Local2, Local1) | |
| ShiftLeft (One, Local2, Local2) | |
| Or (DerefOf (Index (Local0, Local1)), Local2, Index (Local0, Local1)) | |
| Divide (0x2A, 0x08, Local2, Local1) | |
| ShiftLeft (One, Local2, Local2) | |
| Or (DerefOf (Index (Local0, Local1)), Local2, Index (Local0, Local1)) | |
| Store (SizeOf (Local0), Local1) | |
| While (LNotEqual (Local1, Zero)) | |
| { | |
| Decrement (Local1) | |
| Store (DerefOf (Index (FMSK, Local1)), Local2) | |
| And (DerefOf (Index (Local0, Local1)), Local2, Index (Local0, Local1)) | |
| } | |
| Return (Local0) | |
| } | |
| Case (0x13) | |
| { | |
| Store ("GPS fun 19", Debug) | |
| CreateByteField (Arg3, Zero, TEMP) | |
| If (LEqual (TEMP, Zero)) | |
| { | |
| Return (0x04) | |
| } | |
| Store (\_SB.PCI0.LPCB.EC0.BMRD, 0x18) | |
| Local0 | |
| If (LNotEqual (TEMP, Local0)) | |
| { | |
| \_SB.PCI0.LPCB.EC0.BMWD | |
| 0x18 | |
| TEMP | |
| Or (0x20, \_SB.PCI0.LPCB.EC0.BMRD, 0x13) | |
| Local1 | |
| \_SB.PCI0.LPCB.EC0.BMWD | |
| 0x13 | |
| Local1 | |
| P8XH | |
| Zero | |
| \_SB.PCI0.LPCB.EC0.BMRD | |
| 0x13 | |
| } | |
| Return (Arg3) | |
| } | |
| Case (0x20) | |
| { | |
| Store ("GPS fun 20", Debug) | |
| Name (RET1, Zero) | |
| CreateBitField (Arg3, 0x18, NRIT) | |
| CreateBitField (Arg3, 0x19, NRIS) | |
| If (NRIS) | |
| { | |
| If (NRIT) | |
| { | |
| Or (RET1, 0x01000000, RET1) /* \_SB_.PCI0.PEG0.PEGP.GPS_.RET1 */ | |
| } | |
| Else | |
| { | |
| And (RET1, 0xFEFFFFFF, RET1) /* \_SB_.PCI0.PEG0.PEGP.GPS_.RET1 */ | |
| } | |
| } | |
| Or (RET1, 0x40000002, RET1) /* \_SB_.PCI0.PEG0.PEGP.GPS_.RET1 */ | |
| If (NLIM) | |
| { | |
| Or (RET1, One, RET1) /* \_SB_.PCI0.PEG0.PEGP.GPS_.RET1 */ | |
| } | |
| Return (RET1) /* \_SB_.PCI0.PEG0.PEGP.GPS_.RET1 */ | |
| } | |
| Case (0x21) | |
| { | |
| Return (\_PR.CPU0._PSS) /* External reference */ | |
| } | |
| Case (0x22) | |
| { | |
| CreateByteField (Arg3, Zero, PCAP) | |
| Store (PCAP, \_PR.CPU0._PPC) /* External reference */ | |
| Notify (\_PR.CPU0, 0x80) // Status Change | |
| Store (PCAP, PSAP) /* \_SB_.PCI0.PEG0.PEGP.PSAP */ | |
| Return (PCAP) /* \_SB_.PCI0.PEG0.PEGP.GPS_.PCAP */ | |
| } | |
| Case (0x23) | |
| { | |
| Return (PSAP) /* \_SB_.PCI0.PEG0.PEGP.PSAP */ | |
| } | |
| Case (0x25) | |
| { | |
| Store ("GPS fun 25", Debug) | |
| Return (\_PR.CPU0._TSS) /* External reference */ | |
| } | |
| Case (0x26) | |
| { | |
| Store ("GPS fun 26", Debug) | |
| CreateDWordField (Arg3, Zero, TCAP) | |
| Store (TCAP, \_PR.CPU0._PTC) /* External reference */ | |
| Notify (\_PR.CPU0, 0x80) // Status Change | |
| Return (TCAP) /* \_SB_.PCI0.PEG0.PEGP.GPS_.TCAP */ | |
| } | |
| Case (0x2A) | |
| { | |
| Store ("GPS fun 2a", Debug) | |
| CreateByteField (Arg3, Zero, PSH0) | |
| CreateByteField (Arg3, One, PSH1) | |
| CreateBitField (Arg3, 0x08, GPUT) | |
| CreateBitField (Arg3, 0x09, CPUT) | |
| CreateBitField (Arg3, 0x0A, FANS) | |
| CreateBitField (Arg3, 0x0B, SKIN) | |
| CreateBitField (Arg3, 0x0C, ENGR) | |
| CreateBitField (Arg3, 0x0D, SEN1) | |
| CreateBitField (Arg3, 0x0E, SEN2) | |
| Switch (PSH0) | |
| { | |
| Case (Zero) | |
| { | |
| If (CPUT) | |
| { | |
| Store (0x0200, RETN) /* \_SB_.PCI0.PEG0.PEGP.RETN */ | |
| Or (RETN, PSH0, RETN) /* \_SB_.PCI0.PEG0.PEGP.RETN */ | |
| Store (\_SB.PCI0.LPCB.H_EC.GTVR, PDTS) /* \_SB_.PCI0.PEG0.PEGP.PDTS */ | |
| } | |
| Return (GPSP) /* \_SB_.PCI0.PEG0.PEGP.GPSP */ | |
| } | |
| Case (One) | |
| { | |
| Store (0x0300, RETN) /* \_SB_.PCI0.PEG0.PEGP.RETN */ | |
| Or (RETN, PSH0, RETN) /* \_SB_.PCI0.PEG0.PEGP.RETN */ | |
| Store (0x03E8, PDTS) /* \_SB_.PCI0.PEG0.PEGP.PDTS */ | |
| Return (GPSP) /* \_SB_.PCI0.PEG0.PEGP.GPSP */ | |
| } | |
| Case (0x02) | |
| { | |
| Store (0x0102, RETN) /* \_SB_.PCI0.PEG0.PEGP.RETN */ | |
| Store (Zero, VRV1) /* \_SB_.PCI0.PEG0.PEGP.VRV1 */ | |
| Store (Zero, TGPU) /* \_SB_.PCI0.PEG0.PEGP.TGPU */ | |
| Store (Zero, PDTS) /* \_SB_.PCI0.PEG0.PEGP.PDTS */ | |
| Store (Zero, SFAN) /* \_SB_.PCI0.PEG0.PEGP.SFAN */ | |
| Store (Zero, CPUE) /* \_SB_.PCI0.PEG0.PEGP.CPUE */ | |
| Store (Zero, SKNT) /* \_SB_.PCI0.PEG0.PEGP.SKNT */ | |
| Store (Zero, TMP1) /* \_SB_.PCI0.PEG0.PEGP.TMP1 */ | |
| Store (Zero, TMP2) /* \_SB_.PCI0.PEG0.PEGP.TMP2 */ | |
| Return (GPSP) /* \_SB_.PCI0.PEG0.PEGP.GPSP */ | |
| } | |
| } | |
| } | |
| } | |
| Return (0x80000002) | |
| } | |
| } | |
| Scope (\_SB.PCI0.PEG0) | |
| { | |
| } | |
| Scope (\_SB.PCI0) | |
| { | |
| Device (WMI1) | |
| { | |
| Name (_HID, "PNP0C14" /* Windows Management Instrumentation Device */) // _HID: Hardware ID | |
| Name (_UID, "OPT1") // _UID: Unique ID | |
| Name (_WDG, Buffer (0x14) | |
| { | |
| /* 0000 */ 0x3C, 0x5C, 0xCB, 0xF6, 0xAE, 0x9C, 0xBD, 0x4E, // <\.....N | |
| /* 0008 */ 0xB5, 0x77, 0x93, 0x1E, 0xA3, 0x2A, 0x2C, 0xC0, // .w...*,. | |
| /* 0010 */ 0x4D, 0x58, 0x01, 0x02 // MX.. | |
| }) | |
| Method (WMMX, 3, NotSerialized) | |
| { | |
| CreateDWordField (Arg2, Zero, FUNC) | |
| If (LEqual (FUNC, 0x534F525F)) | |
| { | |
| If (LGreaterEqual (SizeOf (Arg2), 0x08)) | |
| { | |
| CreateDWordField (Arg2, 0x04, ARGS) | |
| CreateDWordField (Arg2, 0x08, XARG) | |
| Return (\_SB.PCI0.PEG0.PEGP._ROM (ARGS, XARG)) | |
| } | |
| } | |
| If (LEqual (FUNC, 0x4D53445F)) | |
| { | |
| If (LGreaterEqual (SizeOf (Arg2), 0x1C)) | |
| { | |
| CreateField (Arg2, Zero, 0x80, MUID) | |
| CreateDWordField (Arg2, 0x10, REVI) | |
| CreateDWordField (Arg2, 0x14, SFNC) | |
| CreateField (Arg2, 0xE0, 0x20, XRG0) | |
| If (CondRefOf (\_SB.PCI0.GFX0._DSM)) | |
| { | |
| Return (\_SB.PCI0.GFX0._DSM) /* External reference */ | |
| MUID | |
| REVI | |
| SFNC | |
| XRG0 | |
| } | |
| } | |
| } | |
| Return (Zero) | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment