Contribute
Register

[Guide] Patching LAPTOP DSDT/SSDTs

Thank you for reply here are all of my ssdt files the errors are on ssdt4 and ssdt10.

Read post #1, "Disassembly with refs.txt"
 
Read post #1, "Disassembly with refs.txt"

After I Disassembly with refs.txt now I got different errors on ssdt.5, 10 and 11.
 

Attachments

  • ssdt.zip
    55.9 KB · Views: 80
  • ssdt refs.zip
    2.2 KB · Views: 65
After I Disassembly with refs.txt now I got different errors on ssdt.5, 10 and 11.

Did you move the External declarations that came from refs.txt as per guide?
 
Did you move the External declarations that came from refs.txt as per guide?

No I did not, to be honest with you that part I really don't understand what to do. Could you explain or point me to some example so I could learn and understand. Thanks,
 
No I did not, to be honest with you that part I really don't understand what to do. Could you explain or point me to some example so I could learn and understand. Thanks,

Look at the External declarations in the *.dsl files. You will see the Externals are in two groups. The first group is the Externals that result from refs.txt. Move those lines after the other group of Externals. Simple select, cut, paste.
 
No idea without seeing both files. The file before your changes and the file after.

Note: The DSDT.dsl in the ZIP is fine (all _DSM methods removed), but has other problems..
RehabMan Thank you for reply.
here is my dsdt files. "o_" for original, "f_" for fixed Method.
View attachment 1.zip
 
Look at the External declarations in the *.dsl files. You will see the Externals are in two groups. The first group is the Externals that result from refs.txt. Move those lines after the other group of Externals. Simple select, cut, paste.

RehabMan! You did it again, now my DSDT and SSDT's are error free. Thank you so much for your patients, knowledge and kindness. I have more questions for you but I will study and understand your guides as much as I could first before I ask you. All the best.
 
RehabMan Thank you for reply.
here is my dsdt files. "o_" for original, "f_" for fixed Method.
View attachment 151187

_DSM removal looks fine, but now you need to fix all such constructs:
Code:
    If (LGreaterEqual (XHPC, 0x0A))
    {
        Scope (_SB.PCI0.XHC.RHUB)
        {
            Device (HS09)
            {
                Name (_ADR, 0x09)  // _ADR: Address
            }

            Device (HS10)
            {
                Name (_ADR, 0x0A)  // _ADR: Address
            }
        }
    }

To:
Code:
    //If (LGreaterEqual (XHPC, 0x0A))
    //{
        Scope (_SB.PCI0.XHC.RHUB)
        {
            Device (HS09)
            {
                Name (_ADR, 0x09)  // _ADR: Address
            }

            Device (HS10)
            {
                Name (_ADR, 0x0A)  // _ADR: Address
            }
        }
    //}

Or remove it entirely... Partly it can depend on the values of the variables involved.

option 1:
You can strip it all either way, then use ACPIDebug to determine the actual values. That will tell you whether to include the code that is part of the condition or not.

option 2:
Also, since this conditional code inserts Devices, you can also see it in ioreg under IOACPIPlane. For the above example check in ioreg to see if you see _SB.PCI0.XHC.RHUB.HS09 and HS10 when using natve DSDT.
 
I didn't see HS09 and HS10 under ioreg.

here is my copy of ioreg from my Dell NB.
View attachment 151200

Correct. It stops at HS08. There are quite a few more conditionals like that (the compiler will find them all, 4 at a time...) in your DSDT for you to investigate.
 
Back
Top