diff --git a/SSDT-HACK.dsl b/SSDT-HACK.dsl
index 0305d08..bbf68ac 100644
--- a/SSDT-HACK.dsl
+++ b/SSDT-HACK.dsl
@@ -238,7 +238,7 @@ DefinitionBlock("", "SSDT", 2, "hack", "_HACK", 0)
//
External(_SB.PCI0.RP05.PEGP._OFF, MethodObj)
- External(_SB.PCI0.RP05.PXSX._OFF, MethodObj)
+ //External(_SB.PCI0.RP05.PXSX._OFF, MethodObj)
Device(RMD2)
{
Name(_HID, "RMD20000")
@@ -246,9 +246,58 @@ DefinitionBlock("", "SSDT", 2, "hack", "_HACK", 0)
{
// disable discrete graphics (Nvidia/Radeon) if it is present
If (CondRefOf(\_SB.PCI0.RP05.PEGP._OFF)) { \_SB.PCI0.RP05.PEGP._OFF() }
- If (CondRefOf(\_SB.PCI0.RP05.PXSX._OFF)) { \_SB.PCI0.RP05.PXSX._OFF() }
+ //If (CondRefOf(\_SB.PCI0.RP05.PXSX._OFF)) { \_SB.PCI0.RP05.PXSX._OFF() }
}
}
+ Name(_SB.PCI0.RP05.PXSX._STA, 0)
+
+ External(SB.PCI0.RP05.PEGP.LCTL, FieldUnitObj)
+ External(SB.PCI0.RP05.PEGP.ELCT, IntObj)
+ External(SB.PCI0.RP05.PEGP.VREG, FieldUnitObj)
+ External(SB.PCI0.RP05.PEGP.VGAB, BuffObj)
+ External(SB.PCI0.RP05.PEGP.VDID, FieldUnitObj)
+ External(SB.PCI0.RP05.LNKD, FieldUnitObj)
+ External(SB.PCI0.RP05.PEGP.HLRS, FieldUnitObj)
+ External(SB.PCI0.RP05.PEGP.SGPO, MethodObj)
+
+ // Patched HGOF to remove EC related code
+ Method(SB.PCI0.RP05.PEGP.HGOF, 0, Serialized)
+ {
+ Store (LCTL, ELCT)
+ Store (VREG, VGAB)
+ Store (One, LNKD)
+ While (LNotEqual (VDID, 0xFFFF))
+ {
+ Stall (0x64)
+ }
+
+ SGPO (HLRS, One)
+ //Store (Zero, \_SB.PCI0.LPCB.EC0.NVPR)
+ Store (Zero, LNKD)
+ Return (Zero)
+ }
+
+ External(_SB.PCI0.LPCB.EC, DeviceObj)
+ External(_SB.PCI0.LPCB.EC.NVPR, FieldUnitObj)
+ External(_SB.PCI0.LPCB.EC.XREG, MethodObj)
+
+ // Override EC._REG to take care of EC related code removed from HGOF
+ Scope(_SB.PCI0.LPCB.EC)
+ {
+ OperationRegion(ECR3, EmbeddedControl, 0x00, 0xFF)
+ // original _REG is renamed to XREG
+ Method(_REG, 2)
+ {
+ // call original _REG (now renamed XREG)
+ XREG(Arg0, Arg1)
+
+ If (3 == Arg0 && 1 == Arg1 && CondRefOf(\_SB.PCI0.RP05.PEGP._OFF))
+ {
+ Store (Zero, \_SB.PCI0.LPCB.EC.NVPR)
+ }
+ }
+ }
+
//
// Display backlight implementation
diff --git a/config.plist b/config.plist
index 9064ada..07edfb1 100755
--- a/config.plist
+++ b/config.plist
@@ -153,6 +153,24 @@
<key>Replace</key>
<data>WERTTQ==</data>
</dict>
+ <dict>
+ <key>Comment</key>
+ <string>change Method(HGOF,0,S) to XGOF</string>
+ <key>Find</key>
+ <data>SEdPRgg=</data>
+ <key>Replace</key>
+ <data>WEdPRgg=</data>
+ </dict>
+ <dict>
+ <key>Comment</key>
+ <string>change EC Method(_REG,2,N) to XREG</string>
+ <key>Find</key>
+ <data>X1JFRwI=</data>
+ <key>Replace</key>
+ <data>WFJFRwI=</data>
+ <key>TgtBridge</key>
+ <data>RUNfXw==</data>
+ </dict>
</array>
</dict>
<key>SSDT</key>