Contribute
Register

[Guide] Disabling discrete graphics in dual-GPU laptops

Extremely sorry for the inconvenience. I totally missed the last part of that sentence :(

I have extracted the files from Clover with F4 option.

Thanks for all your help. Really appreciated.

Cheers
 

Attachments

  • Origin.zip
    70.9 KB · Views: 96
Extremely sorry for the inconvenience. I totally missed the last part of that sentence :(

I have extracted the files from Clover with F4 option.

Thanks for all your help. Really appreciated.

Cheers

What is your problem with these files. No issue if disassembled with refs.txt per guide...
http://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/

DSDT: apply "Fix PARSEOP_ZERO Error" (aggressive version, read the comments in the patch)
SSDT-1: apply "Remove _DSM methods"

The rest are error free.

_OFF is in SSDT-13.dsl. It calls HGOF, which is in SSDT-12.dsl. HGOF has EC related code that must be moved to DSDT in _REG.

Details in the guide (eg. post #1 here):
http://www.tonymacx86.com/threads/guide-disabling-discrete-graphics-in-dual-gpu-laptops.163772/

Nothing unusual here.
 
Thanks for all your help on this RehabMan.
You are amazing ! :headbang::clap: I have finally disabled the Nvidia graphics card.

There were 2 methods using EC0 code - GC6I and HGOF.
Just wasn't sure which method was to be moved to _REG.

Your directions to move HGOF are spot on.

By the way, for making this work, it is necessary to move the entire block of code in HGOF to _REG.
Also, there were more than 10 variables and 3 other methods which I copied in and around the scope to get this working.

Took 5 retries :crazy: but ultimately its tamed :thumbup:

Cheers
 
Thanks for all your help on this RehabMan.
You are amazing ! :headbang::clap: I have finally disabled the Nvidia graphics card.

There were 2 methods using EC0 code - GC6I and HGOF.
Just wasn't sure which method was to be moved to _REG.

Your directions to move HGOF are spot on.

By the way, for making this work, it is necessary to move the entire block of code in HGOF to _REG.
Also, there were more than 10 variables and 3 other methods which I copied in and around the scope to get this working.

Took 5 retries :crazy: but ultimately its tamed :thumbup:

Cheers

Usually you move only the EC related code to _REG. _REG may be too late to execute some of the other code. But it all depends on what the other code in _OFF accomplishes and what the other code is doing.
 
I have a Toshiba L50-B-14P and I'm trying to disable my AMD videocard for a couple of days now, but it just won't work.

Can you please help me with it.

Everything else (except the sound card) is working, but my battery is drowning and the laptop is getting really warm because of the discrete videocard.

I have attached the contents needed in my post.
 

Attachments

  • Contents.zip
    3.7 MB · Views: 91
I have a Toshiba L50-B-14P and I'm trying to disable my AMD videocard for a couple of days now, but it just won't work.

Can you please help me with it.

Everything else (except the sound card) is working, but my battery is drowning and the laptop is getting really warm because of the discrete videocard.

I have attached the contents needed in my post.

The _OFF method is in SSDT-7. It calls HGOF, but that is not a problem as HGOF has no EC references (neither does _OFF).
You will also find the _INI in SSDT-7.
Call _OFF from _INI.
It is all covered quite clearly in post #1.
 
Use ACPIDebug.kext to debug the code.

RehabMan, you are a genius! Hasn't Apple tried to hire you as a chief anti-hacking architect?

I've managed to disable the discrete graphics card. The ACPIDebug helped me to achieve this, it would be hard to do it without it.
I've discovered that GPOF gets called from _INI, but it doesn't go through the second if. So I just commented the if out and now it works. But it looks a bit messy. Do you think it is ok or there might be some nasty side effect of such ugly hack?

Code:
                 Method (GPOF, 1, NotSerialized)
                    {
                        \RMDT.PUSH("Entering GPOF")

                        If (ISOP ())
                        {
                            \RMDT.PUSH("GPOF - after 1st if")

                            //If (LOr (VMSH, LEqual (OMPR, 0x03)))
                            //{
                                \RMDT.PUSH("GPOF - after 2nd if")

                                SWTT (Zero)
                                VHYB (0x08, Zero)
                                Store (0x0A, Local0)
                                Store (0x32, Local1)
                                While (Local1)
                                {
                                    Sleep (Local0)
                                    If (LCHK (Zero))
                                    {
                                        Break
                                    }

                                    Decrement (Local1)
                                }

                                VHYB (0x08, 0x02)
                                VHYB (0x02, Zero)
                                Sleep (0x64)
                                VHYB (Zero, Zero)
                                If (LEqual (ToInteger (Arg0), Zero)) {}
                                Store (One, DGOS)
                                Store (0x02, OMPR)
                            //}
                        }
                    }

After disabling the discrete graphics, the CPU is almost ten degrees colder and especially, the left bottom corner of the laptop (under the left palm) is not hot anymore.
 
RehabMan, you are a genius! Hasn't Apple tried to hire you as a chief anti-hacking architect?

I've managed to disable the discrete graphics card. The ACPIDebug helped me to achieve this, it would be hard to do it without it.
I've discovered that GPOF gets called from _INI, but it doesn't go through the second if. So I just commented the if out and now it works. But it looks a bit messy. Do you think it is ok or there might be some nasty side effect of such ugly hack?

Code:
                 Method (GPOF, 1, NotSerialized)
                    {
                        \RMDT.PUSH("Entering GPOF")

                        If (ISOP ())
                        {
                            \RMDT.PUSH("GPOF - after 1st if")

                            //If (LOr (VMSH, LEqual (OMPR, 0x03)))
                            //{
                                \RMDT.PUSH("GPOF - after 2nd if")

                                SWTT (Zero)
                                VHYB (0x08, Zero)
                                Store (0x0A, Local0)
                                Store (0x32, Local1)
                                While (Local1)
                                {
                                    Sleep (Local0)
                                    If (LCHK (Zero))
                                    {
                                        Break
                                    }

                                    Decrement (Local1)
                                }

                                VHYB (0x08, 0x02)
                                VHYB (0x02, Zero)
                                Sleep (0x64)
                                VHYB (Zero, Zero)
                                If (LEqual (ToInteger (Arg0), Zero)) {}
                                Store (One, DGOS)
                                Store (0x02, OMPR)
                            //}
                        }
                    }

After disabling the discrete graphics, the CPU is almost ten degrees colder and especially, the left bottom corner of the laptop (under the left palm) is not hot anymore.

You might want to review/debug the code to determine:
- the values of VMSH and OMPR
- the conditions under which they are set to the correct values (I suspect it depends on which version of Windows is detected)
 
Hi,RehabMan
I reported that once I disable my AMD8790M graphics the OS X will auto shutdown within 2 minutes after boot. However we didn't find the solution last time.
And now I think I've found the reason of the auto shutdown. I think something is wrong with the CPU power management or temperature sensor. I found a page called "Thermal Events" in BIOS settings and I can find the record "critical temperature shutdown" in this page and the time records are just the time when auto shutdown happened.
Also when I tried to get audio codec from Ubuntu 16.04 install USB disk and boot Ubuntu using the install usb disk. Ubuntu get auto shutdown within 2 minutes, too.
All of the requested files were uploaded in post #810 at page 81. Could you check the files and tell me how to fix this problem
?
 
Hi,RehabMan
I reported that once I disable my AMD8790M graphics the OS X will auto shutdown within 2 minutes after boot. However we didn't find the solution last time.
And now I think I've found the reason of the auto shutdown. I think something is wrong with the CPU power management or temperature sensor. I found a page called "Thermal Events" in BIOS settings and I can find the record "critical temperature shutdown" in this page and the time records are just the time when auto shutdown happened.
Also when I tried to get audio codec from Ubuntu 16.04 install USB disk and boot Ubuntu using the install usb disk. Ubuntu get auto shutdown within 2 minutes, too.
All of the requested files were uploaded in post #810 at page 81. Could you check the files and tell me how to fix this problem
?

You need to provide current files. Read post #1, "Problem Reporting".
 
Back
Top