Contribute
Register

[Guide] Patching LAPTOP DSDT/SSDTs

Yeah, I guess the problem was just the ACPI version, my bad. Now I'm getting just two errors, I've placed all DSDT and SSDT files I found from the tables extracted from Linux, including those inside the 'dynamics' folder (SSDT7, 8 and 9), inside the same folder.

View attachment 150621

Two errors you have are common. Read the error message carefully... it is telling you the those lines have no effect. Fix: remove them.
 
Hi its me again Rehabman.

I have been trying and testing "Remove Method (_DSM" by hand, but I always get this error.
and when I Delete the line that shows error, and the line under the deleted line be come other error. like the pictures here. how to fix it? thanks.

?.png?.png3.png

Or is there any one can help me? I want to disable the nVidia Graphics, and patch sound (Realtek ALC3234)and HDMI for HD5500.
View attachment DSDTs.zip
 
Hi its me again Rehabman.

I have been trying and testing "Remove Method (_DSM" by hand, but I always get this error.
and when I Delete the line that shows error, and the line under the deleted line be come other error. like the pictures here. how to fix it? thanks.

View attachment 151104View attachment 151103View attachment 151105

No way to tell what you're doing in the images you provide.

To remove a method you need to remove the method declaration and all the code associated with the method.

eg.
Code:
Method (_DSM, ...)
{
... all code including the opening and closing brackets shown here
}
 
Problem is typical breakless keys with Dell.

Patch with:
Code:
into method label _DSM parent_label PS2K remove_entry;
into device label PS2K insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "RM,oem-id", "DELL",\n
        "RM,oem-table-id", "WN09",\n
    })\n
}\n
end;

With next build of VoodooPS2Controller, use "WN09a" instead.

You can test it if you wish to build from sources.

RehabMan,

I have a DELL 7348 Laptop and i´m using the following patch for keyboard:

Code:
into method label _DSM parent_label PS2K remove_entry;
into device label PS2K insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "RM,oem-id", "DELL",\n
        "RM,oem-table-id", "7348",\n
    })\n
}\n
end;

Looks right to you?

I was confused with the following code in your suggestion:

Code:
RM,oem-table-id", "WN09",\n
 
RehabMan,

I have a DELL 7348 Laptop and i´m using the following patch for keyboard:

Code:
into method label _DSM parent_label PS2K remove_entry;
into device label PS2K insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "RM,oem-id", "DELL",\n
        "RM,oem-table-id", "7348",\n
    })\n
}\n
end;

Looks right to you?

I was confused with the following code in your suggestion:

Code:
RM,oem-table-id", "WN09",\n

There is no profile for DELL/7348 in the keyboard driver Info.plist.

Selecting a non-existent profile will have no effect.
 
No way to tell what you're doing in the images you provide.

To remove a method you need to remove the method declaration and all the code associated with the method.

eg.
Code:
Method (_DSM, ...)
{
... all code including the opening and closing brackets shown here
}
this is what I did in my DSDT.dsl and also the deleted "Method (_MSD" in the txt file. is there anything I did wrong? I think I did like you say remove "the method declaration and all the code associated with the method."
View attachment dsdt.zip
 
this is what I did in my DSDT.dsl and also the deleted "Method (_MSD" in the txt file. is there anything I did wrong? I think I did like you say remove "the method declaration and all the code associated with the method."
View attachment 151118

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..

All such instances of the PARSEOP_IF need to be resolved:
Code:
    If (LGreaterEqual (XHPC, 0x0A))
    {
        Scope (_SB.PCI0.XHC.RHUB)
        {
            Device (HS09)
            {
                Name (_ADR, 0x09)  // _ADR: Address
            }

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

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

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

Second way:
Code:
...remove the entire block...

The correct answer depends on the values of the variables being tested (eg. in this case XHPC).
 
@RehabMan,
I need your suggestion on how to fix these errors on 1 of my ssdt. Thank you,
 

Attachments

  • ssdt10-errors.png
    ssdt10-errors.png
    382.4 KB · Views: 137
@RehabMan,
I need your suggestion on how to fix these errors on 1 of my ssdt. Thank you,

No idea without seeing the file(s). Errors cannot be diagnosed by error message alone.
 
No idea without seeing the file(s). Errors cannot be diagnosed by error message alone.

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

Attachments

  • ssdt_dsl.zip
    35.8 KB · Views: 59
Back
Top