Contribute
Register

[Guide] Disabling discrete graphics in dual-GPU laptops

I followed the guide:
ON SSDT 6:

-removed the EC references from _OFF
-Applied this patch:

Code:
into method label _INI parent_label \_SB.PCI0.PEG0.PEGP insertbegin
//added to turn nvidia/radeon off\n
External(\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)\n
_OFF()\n
end;

ON DSDT:
Applied this patch:
Code:
#Maintained by: RehabMan for: Laptop Patches#graphics_REG-disable.txt


# The purpose of this patch is to add code to _REG in EC
# to disable nvidia/Radeon
#
# The path of _OFF may have to be customized to match your SSDTs
# The patch attempts to identify the correct _REG by using
# the ACPI PNP identifier for the EC.


into method label _REG parent_hid PNP0C09 insert
begin
//added to turn nvidia/radeon off\n
If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))\n
{\n
    External(\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)\n
    \_SB.PCI0.PEG0.PEGP._OFF()\n
}\n
end;

but i still can see nvdia card, what i'm doing wrong? Greetings and Happy Easter!

Wrong. You must modify the _REG patch so it includes your EC related code, not the call to _OFF.

Read the guide carefully.
 
Wrong. You must modify the _REG patch so it includes your EC related code, not the call to _OFF.

Read the guide carefully.

Yeah I read it but how can i modify that patch with my EC? I tried like this but gave me errors:

Code:
[FONT=arial][SIZE=2]//added to turn nvidia/radeon off
                If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))
                {
                    \_SB.PCI0.LPCB.EC0.HGMF
                     \_SB.PCI0.LPCB.EC0.HYMS

                }[/SIZE][/FONT]
 
Yeah I read it but how can i modify that patch with my EC? I tried like this but gave me errors:

Code:
//added to turn nvidia/radeon off
                If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))
                {
                    [COLOR=#3E3E3E][FONT=Verdana]\_SB.PCI0.LPCB.EC0.HGMF
[/FONT][/COLOR][COLOR=#3E3E3E]\_SB.PCI0.LPCB.EC0.HYMS[/COLOR]

                }

Not possible to help without the actual files/patches/etc.

If HGMF and HYMS are method calls, your mistake is obvious... you removed '()'... why?

Edit: It seems to me the original code was "Store...".
 
Not possible to help without the actual files/patches/etc.

If HGMF and HYMS are method calls, your mistake is obvious... you removed '()'... why?

Edit: It seems to me the original code was "Store...".

Edited in this:

Code:
      Method (_REG, 2, NotSerialized)  // _REG: Region Availability            {
                If (LEqual (Arg0, 0x03))
                {
                    Store (Arg1, OKEC)
                }
                //added to turn nvidia/radeon off
                If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))
                {
                   Store (Zero, \_SB.PCI0.LPCB.EC0.HGMF)
                   Store (Zero, \_SB.PCI0.LPCB.EC0.HYMS)
                }
            }
Still see Nvdia card :(
Here are my actual files:View attachment Rehabman 3.zip
 
Edited in this:

Code:
      Method (_REG, 2, NotSerialized)  // _REG: Region Availability            {
                If (LEqual (Arg0, 0x03))
                {
                    Store (Arg1, OKEC)
                }
                //added to turn nvidia/radeon off
                If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))
                {
                   Store (Zero, \_SB.PCI0.LPCB.EC0.HGMF)
                   Store (Zero, \_SB.PCI0.LPCB.EC0.HYMS)
                }
            }
Still see Nvdia card :(
Here are my actual files:View attachment 182754

The guide is very clear that DropOem=true is required with patched SSDTs in ACPI/patched.

You have config.plist/ACPI/SSDT/DropOem=false.
 
The guide is very clear that DropOem=true is required with patched SSDTs in ACPI/patched.

You have config.plist/ACPI/SSDT/DropOem=false.

Oh finally got it! what a stupid error. Thank you so much!! You are a god RehabMan <3
 
Hi rehabman,
i was following this guide to disable my discrete videocard but i've got several problems.
First one i only have SSDT up to 6 but i don't have from 7 to 12. I tried 2 extraction methods (Clover using F4 and patchmatic. Always missing from 7 to 12 SSDT.aml

Second if i apply the Remove_PSS placeholders to SSDT-0.dsl when i compile the new file i got an error in this row :

Method (PSDD, 0, NotSerialized)
{
Name (PWRV,)
Return (PWRV)
}

Here is the original DSDT-0.dsl file row :

Method (PSDD, 0, NotSerialized)
{
Name (PWRV, Package (0x06)
{
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000
})
Return (PWRV)
}


What am I doing wrong ?
 
Hi rehabman,
i was following this guide to disable my discrete videocard but i've got several problems.
First one i only have SSDT up to 6 but i don't have from 7 to 12. I tried 2 extraction methods (Clover using F4 and patchmatic. Always missing from 7 to 12 SSDT.aml

The number of SSDTs and their names varies by computer. Patching depends on content, not file name.

Second if i apply the Remove_PSS placeholders to SSDT-0.dsl when i compile the new file i got an error in this row :

You are applying "Remove _PSS placeholders" to the wrong file.

It is only for the file which contains the _PSS object.
 
Hi Rehabman, I have installed hackintosh to my GL552jx, everything work. but NVidia card still apear in my system report,
I follow your tut, it can complile, and when i put DSDT and SSDT to EFI\Clover\ACPI\patched, the NVidia still there,
I attached my files, so i hope that you can help me disable the card,
thanks
 

Attachments

  • patched.zip
    765.9 KB · Views: 91
Hi Rehabman, I have installed hackintosh to my GL552jx, everything work. but NVidia card still apear in my system report,
I follow your tut, it can complile, and when i put DSDT and SSDT to EFI\Clover\ACPI\patched, the NVidia still there,
I attached my files, so i hope that you can help me disable the card,
thanks

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