Jump to content
PayPal donations: [email protected] ×

Unable to disable GPU in SSDT/DSDT


Paolo7297

Recommended Posts

  • Administrators

So nVidia GeForce 840M defined under device PEGP within RP05@001C0004.

 

You should modify the _WAK method so that it turns off the dGPU. Right now it wakes it so even if you disable the dGPU at startup, a wake will re-enable it.

 

In SSDT-9.aml, you have a method EPON that must have been modified since I see it set ONOF to Zero. I would have expected it to set ONOF to One. I'd have kept it that way and created a new method called EPOF that does set ONOF to Zero. So you'd have the following code under \SB.PCI0.RP05.PEGP:

        Method (EPON, 0, Serialized)
        {
            Store (One, ONOF)
            Return (Zero)
        }


        Method (EPOF, 0, Serialized)
        {
            Store (Zero, ONOF)
            Return (Zero)
        }

`

You may then modify the _WAK method in DSDT to the following:

    Method (_WAK, 1, Serialized)  // _WAK: Wake
    {
        If (LOr (LLess (Arg0, One), LGreater (Arg0, 0x05)))
        {
            Store (0x03, Arg0)
        }


        WAK (Arg0)
        ADBG ("_WAK")
        If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
        {
            // Remove those lines since there is no Device PEG0 in any BIOS tables
            // If (CondRefOf (\_SB.PCI0.PEG0.PEGP.EPON))
            // {
            //    \_SB.PCI0.PEG0.PEGP.EPON ()
            // }

            If (CondRefOf (\_SB.PCI0.RP05.PEGP.EPON))
            {
                \_SB.PCI0.RP05.PEGP.EPOF ()          // disables dGPU at Wake
            }
        [...]

and make sure to add the following at the top of the DSDT under the _SB_.PCI0.RP05.PEGP.EPON external method declaration:

    External (_SB_.PCI0.RP05.PEGP.EPOF, MethodObj)    // 0 Arguments (from opcode)

`

Now, in order to load your patched SSDT files,  you've got to revise the names you used because the SSDT will only load in the order SSDT, SSDT-1, SSDT-2, SSDT-3, ... Right now, only the SSDT.aml will load and I doubt any of your patched SSDT-6/-8/-9/-10 actually do do. Check through verbose mode.

Link to comment
Share on other sites

I think that all ssdts are loaded because graphics and brightness are working (I applied patches for them in ssdt-8).

In clover boot.log:

8:192  0:000  === [ ACPIPatchedAML ] ====================================
8:192  0:000  Start: Processing Patched AML(s): Unsorted
8:192  0:000  Inserting SSDT.AML from EFI\CLOVER\ACPI\patched ... Success
8:193  0:001  Inserting SSDT-10.AML from EFI\CLOVER\ACPI\patched ... Success
8:194  0:000  Inserting SSDT-9.AML from EFI\CLOVER\ACPI\patched ... Success
8:194  0:000  Inserting SSDT-8.AML from EFI\CLOVER\ACPI\patched ... Success
8:195  0:000  Inserting SSDT-6.AML from EFI\CLOVER\ACPI\patched ... Success
8:195  0:000  End: Processing Patched AML(s)
8:195  0:000  CPUBase=0 and ApicCPUBase=1 ApicCPUNum=4

So... I tried your method but everytime I boot my vivobook it's still here...

I don't know what to do...

I'm going to attach patched tables with your edits and original ones...

Thank you a lot

 

 

EDIT: I feel like an idiot... I forced Clover to load ssdts starting from 6 to 10 and now the problem is solved... Thanks!!

decompiled.zip

origin.zip

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...