Contribute
Register

[Guide] Disabling discrete graphics in dual-GPU laptops

This is a wrap!! Nvidia finally has disappeared. Thank you for all your helps man. I am so grateful!

Those who needed, I wanna share because it was not that easy on Lenovo especially.

SSDT-14

Code:
 Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.RP09.PXSX._ADR)
            _OFF ()
        }

and

Code:
 Method (HGOF, 0, Serialized)
        {
            H2OP (0xE6)
            If (LEqual (ECON, One))
            {
            }

DSDT

Code:
 If (LEqual (LSTE, One))
                    {
                        Store (0x03, ^^^IGPU.CLID)
                    }

                    Store (LSTE, LIDS)
                }
                //added to turn nvidia/radeon off
                If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))
                {
                Store (0x02, \_SB.PCI0.LPCB.EC0.GATY)

                }
            }

            Method (CMFC, 0, Serialized)
            {
                Return (EDID)
            }


CHEERS!

Nothing unusual here.
Exactly as the guide describes.
 
Find #SortedOrder in the guide plists. Then see if you have a question.

Hi. I successfully sort my ssdt using your guide can you check it out. Anyway still show NVIDIA in system preferences, Do I done anything wrong?
 

Attachments

  • to be sent.zip
    2.4 MB · Views: 68
Hi. I successfully sort my ssdt using your guide can you check it out. Anyway still show NVIDIA in system preferences, Do I done anything wrong?

Your config.plist still has no SortedOrder (Clover ignores #SortedOrder).
Look at your Clover bootlog:
Code:
3:694  0:000  === [ ACPIPatchedAML ] ====================================
3:694  0:000  Unsorted
3:694  0:000  Inserting SSDT-3.aml from EFI\CLOVER\ACPI\patched ... Success
3:694  0:000  Inserting SSDT-4.aml from EFI\CLOVER\ACPI\patched ... Success
3:694  0:000  Inserting SSDT-2.aml from EFI\CLOVER\ACPI\patched ... Success
3:695  0:000  Inserting SSDT-5.aml from EFI\CLOVER\ACPI\patched ... Success
3:695  0:000  Inserting SSDT-6.aml from EFI\CLOVER\ACPI\patched ... Success
3:695  0:000  Inserting SSDT-1.aml from EFI\CLOVER\ACPI\patched ... Success
3:695  0:000  Inserting SSDT-0.aml from EFI\CLOVER\ACPI\patched ... Success
3:695  0:000  Inserting SSDT-14.aml from EFI\CLOVER\ACPI\patched ... Success
 
Your config.plist still has no SortedOrder (Clover ignores #SortedOrder).
Look at your Clover bootlog:
Code:
3:694  0:000  === [ ACPIPatchedAML ] ====================================
3:694  0:000  Unsorted
3:694  0:000  Inserting SSDT-3.aml from EFI\CLOVER\ACPI\patched ... Success
3:694  0:000  Inserting SSDT-4.aml from EFI\CLOVER\ACPI\patched ... Success
3:694  0:000  Inserting SSDT-2.aml from EFI\CLOVER\ACPI\patched ... Success
3:695  0:000  Inserting SSDT-5.aml from EFI\CLOVER\ACPI\patched ... Success
3:695  0:000  Inserting SSDT-6.aml from EFI\CLOVER\ACPI\patched ... Success
3:695  0:000  Inserting SSDT-1.aml from EFI\CLOVER\ACPI\patched ... Success
3:695  0:000  Inserting SSDT-0.aml from EFI\CLOVER\ACPI\patched ... Success
3:695  0:000  Inserting SSDT-14.aml from EFI\CLOVER\ACPI\patched ... Success

Hi, I change from #SortedOrder to SortedOrder as in the file below. Still Nvidia still on can you check it?
 

Attachments

  • to be sent.zip
    2.4 MB · Views: 66
Hi, I change from #SortedOrder to SortedOrder as in the file below. Still Nvidia still on can you check it?

Comments:
- very dangerous how you deleted the BNUM definition in DSDT (you should have removed the External(BNUM, ...) not the BNUM field definition)
- why did you remove the call to HGOF in _OFF? HGOF is the method that does all the work to disable the device. Without it, you cannot expect _OFF to work.
In fact, your edits to _OFF are complete nonsense.
You changed:
Code:
        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
            Store (LCTL, ELCT)
            Store (VREG, VGAB)
            HGOF ()
            Return (Zero)
        }

To:
Code:
        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
            If (LEqual (MSD3, Zero))
            {
                H2OP (0x66)
                Store (Zero, _STA ())
                Store (0x03, MSD3)
                H2OP (0x67)
            }
        }

Why?

- HGOF still has the EC related code. Even if you fix _OFF so it is calling HGOF (eg. original code), it will not work as the ACPI interpreter will abort when it comes to the EC related code (because EC related code cannot be called until _REG is called).

- On the positive, _REG does have the Store to GATY (so you successfully copied the EC related code from HGOF to _REG).
 
Last edited:
Comments:
- very dangerous how you deleted the BNUM definition in DSDT (you should have removed the External(BNUM, ...) not the BNUM field definition)
- why did you remove the call to HGOF in _OFF? HGOF is the method that does all the work to disable the device. Without it, you cannot expect _OFF to work.
In fact, your edits to _OFF are complete nonsense.
You changed:
Code:
        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
            Store (LCTL, ELCT)
            Store (VREG, VGAB)
            HGOF ()
            Return (Zero)
        }

To:
Code:
        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
            If (LEqual (MSD3, Zero))
            {
                H2OP (0x66)
                Store (Zero, _STA ())
                Store (0x03, MSD3)
                H2OP (0x67)
            }
        }

Why?

Done change back into this:
Code:
        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
            Store (LCTL, ELCT)
            Store (VREG, VGAB)
            HGOF ()
            Return (Zero)
        }

And still problem exist, anyway is my ssdt order work?

Edit:
Ok I know that mu DSDT is correct now, I dont get it the part of SSDT which I already edited, what should I do to fix the SSDT?
 

Attachments

  • to be sent.zip
    2.4 MB · Views: 65
Last edited:
Done change back into this:
Code:
        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
            Store (LCTL, ELCT)
            Store (VREG, VGAB)
            HGOF ()
            Return (Zero)
        }

And still problem exist, anyway is my ssdt order work?

Read all of #1405.
 
Ok I removed call of HG0F on _OFF since it will not work as ACPI Interpreter..

What should I do next? Still same result.

You should not be removing HGOF from _OFF.
No "Problem Reporting" files attached.
 
Back
Top