Contribute
Register

[Guide] Disabling discrete graphics in dual-GPU laptops

My SGPO code, also on SSDT-7, anything that I should change here?
Code:
        Method (SGPO, 2, Serialized)
        {
            ShiftRight (Arg0, 0x07, Local3)
            And (Arg0, 0x7F, Arg0)
            If (LEqual (Local3, Zero))
            {
                Not (Arg1, Local3)
                And (Local3, One, Local3)
            }
            Else
            {
                And (Arg1, One, Local3)
            }

            If (LLess (Arg0, 0x20))
            {
                ShiftLeft (Local3, Arg0, Local0)
                ShiftLeft (One, Arg0, Local1)
                And (\_SB.PCI0.PEG0.PEGP.LVL0, Not (Local1), Local2)
                Or (Local2, Local0, \_SB.PCI0.PEG0.PEGP.LVL0)
            }
            ElseIf (LLess (Arg0, 0x40))
            {
                ShiftLeft (Local3, Subtract (Arg0, 0x20), Local0)
                ShiftLeft (One, Subtract (Arg0, 0x20), Local1)
                And (\_SB.PCI0.PEG0.PEGP.LVL1, Not (Local1), Local2)
                Or (Local2, Local0, \_SB.PCI0.PEG0.PEGP.LVL1)
            }
            ElseIf (LLess (Arg0, 0x7F))
            {
                ShiftLeft (Local3, Subtract (Arg0, 0x40), Local0)
                ShiftLeft (One, Subtract (Arg0, 0x40), Local1)
                And (\_SB.PCI0.PEG0.PEGP.LVL2, Not (Local1), Local2)
                Or (Local2, Local0, \_SB.PCI0.PEG0.PEGP.LVL2)
            }

            Return (One)
        }

No EC related code there.

Sorry for the indentation, I think it's correct now:
Code:
                    Method (_REG, 2, NotSerialized)  // _REG: Region Availability
                    {
                        If (LAnd (LEqual (Arg0, 0x03), LEqual (Arg1, One)))
                        {
                            Store (One, ECON)
                            If (LAnd (LEqual (ALSE, 0x02), IGDS))
                            {
                                Store (^ALSD._ALI (), ^^^GFX0.ALSI)
                            }

                            Store (0x03, ^^^GFX0.CLID)
                            Store (ACEX, PWRS)
                            If (LOr (LEqual (And (CPTY, 0x80), 0x80), LNotEqual (TIST, One)))
                            {
                                Store (TZCH (), RIST)
                                Store (RIST, PPCS)
                            }

                            PNOT ()
                        }
                       If (LEqual (\ECON, One))
                       {
                           Store (Zero, \_SB.PCI0.LPCB.H_EC.OPST)
                       }
                    }

As long as you execute it only when Arg0==3 and Arg1==1, you should be fine... It is all covered in the guide, post #1.
 
No EC related code there.

As long as you execute it only when Arg0==3 and Arg1==1, you should be fine... It is all covered in the guide, post #1.

Alright, moved the code from SSDT-8 on _OFF to DSDT on _REG. System is booting fine with these changes and discrete graphic is disabled.

However, system is still not coming back from sleep. After pressing the power button on sleep, I hear the fans working and the power led stops blinking, but there's nothing on screen. I need to hold down power button to force shutdown.

Any ideas?
 

Attachments

  • SamsungAB6.zip
    2.3 MB · Views: 110
Alright, moved the code from SSDT-8 on _OFF to DSDT on _REG. System is booting fine with these changes and discrete graphic is disabled.

However, system is still not coming back from sleep. After pressing the power button on sleep, I hear the fans working and the power led stops blinking, but there's nothing on screen. I need to hold down power button to force shutdown.

Any ideas?

Is the sleep problem new with the patching for disabling AMD? If not, then off-topic...

Note: Looks like you have several non-advised options in your config.plist (PatchAPIC, FixUSB_1000, darkwake, -force64 ahcidisk debug dmar, SMBIOS/Trust=false[should be true])

Also appears nothing done with USB...
 
Last edited:
Bad idea to add config.plist/ACPI/DSDT/Fixes on top of patched ACPI.

Also, why 10.11 (.0) instead of 10.11.5 (current version)? From where did you download OS X?

I deleted all of the ACPI/DSDT/Fixes in config.plist but the problem was still there. I still get high fan speed and auto shut down.
I forget where I downloaded the OS X but I'm sure it's a official image without any modification. Also, do I have to upgrade to 10.11.5 ?
 
Last edited:
Is the sleep problem new with the patching for disabling AMD? If not, then off-topic...

It's the same problem, but now at least I have the correct approach to disable my AMD GPU. I'll open a topic for this matter, after a few more digging. Thanks!

Note: Looks like you have several non-advised options in your config.plist (PatchAPIC, FixUSB_1000, darkwake, -force64 ahcidisk debug dmar, SMBIOS/Trust=false[should be true])

Also appears nothing done with USB...

Removed all of them and changed SMBIOS to Trust=true. Thanks!

I only used this patch for USB: 7-series/8-series USB.
 
Last edited:
Bad idea to add config.plist/ACPI/DSDT/Fixes on top of patched ACPI.

Also, why 10.11 (.0) instead of 10.11.5 (current version)? From where did you download OS X?
Could you take a look at my dsdt and ssdt? I have checked config.plist and the injected kext and now I am pretty sure that something is wrong with dsdt and ssdt.
 
Could you take a look at my dsdt and ssdt? I have checked config.plist and the injected kext and now I am pretty sure that something is wrong with dsdt and ssdt.

Read post #1, "Problem Reporting".
 
Back
Top