Contribute
Register

Some questions regarding my DSDT patching

Status
Not open for further replies.
Joined
Jul 19, 2015
Messages
7
Motherboard
Fujitsu Siemens D3402-A1
CPU
i7-6700
Graphics
HD 530
My mainboard is the Fujitsu D3402-A1 I have extracted the DSDT and SSDT with clovers F4 option. (You can find the origin attached)
I was following the rehabman's guide and applied the following patches on the main DSDT:

Rename _DSM to XDSM
Rename GFX0 to IGPU
Fix _PLD Buffer / PackageError
Fix ADBG
Add MCHC
Fix WAK Arg0 v2
Fix Mutex with non zero Sync Level
OS Check Fix (win7)
RTC Fix
USB _PRW 0x6D

Then I have found out that once loading I got a ACPI Error that the port _SB_.PCI0.XHC_.RHUB.HS11 could not be resolved in Scope.
I checked the DSDT and there I found a if clause: If (LEqual (PCHV (), SPTH)) which prevents the HS11 - HS14 and SS07 - SS10 devices to be available. So I edited the SSDT-4-USB_MAP and removed these devices. After this change the ACPI Error was gone.

Side question: what exactly is the if clause for (is there a switch to activate these ports??)

Then I had a further ACPI Error -> in other SSDT there are references to GFX0 -> so that these also can not be loaded. I changes them but in SSDT-6-SaSsdt there is an error which I do not know how to fix: unexpected PARSEOP_NOTIFY in line 210:
Code:
Method (P0L6, 0, NotSerialized)
        {
            If (\_SB.ISME (P0WK, \_SB.SHPO (P0WK, One), Notify (\_SB.PCI0.PEG0, 0x02))){}
        }
I changed it to:
Code:
Method (P0L6, 0, NotSerialized)
        {
            If (\_SB.ISME (P0WK, \_SB.SHPO (P0WK, One)))
                {
                Notify (\_SB.PCI0.PEG0, 0x02)
                }
        }
Correct???

Further in line 267 there is the following:
Code:
Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
        {
            Return (GPRW)
            0x69
            0x04
        }
here I deleted both integers. Correct??

The same in line 507.

And at the end in line 4673:
Code:
Method (SGPI, 4, Serialized)
        {
            If (LEqual (Arg0, One))
            {
                If (CondRefOf (\_SB.GGOV))
                {
                    Store (\_SB.GGOV, Arg2)
                    Local0
                }
            }
            ElseIf (LEqual (Arg0, 0x02))
            {
                If (CondRefOf (\_SB.PCI0.GEXP.GEPS))
                {
                    Store (\_SB.PCI0.GEXP.GEPS, Arg1)
                    Arg2
                    Local0
                }
            }

            If (LEqual (Arg3, Zero))
            {
                Not (Local0, Local0)
                And (Local0, One, Local0)
            }

            Return (Local0)
        }

What is the solution here? I deleted all Local0??

Thank you for the help.
 

Attachments

  • origin.zip
    53 KB · Views: 139
Last edited:
My mainboard is the Fujitsu D3402-A1 I have extracted the DSDT and SSDT with clovers F4 option. (You can find the origin attached)
I was following the rehabman's guid and applied the following patches on the main DSDT:

Rename _DSM to XDSM
Rename GFX0 to IGPU
Fix _PLD Buffer / PackageError
Fix ADBG
Add MCHC
Fix WAK Arg0 v2
Fix Mutex with non zero Sync Level
OS Check Fix (win7)
RTC Fix
USB _PRW 0x6D

Then I have found out that once loading I got a ACPI Error that the port _SB_.PCI0.XHC_.RHUB.HS11 could not be resolved in Scope.
I checked the DSDT and there I found a if clause: If (LEqual (PCHV (), SPTH)) which prevents the HS11 - HS14 and SS07 - SS10 devices to be available. So I edited the SSDT-4-USB_MAP and removed these devices. After this change the ACPI Error was gone.

Side question: what exactly is the if clause for (is there a switch to activate these ports??)

Then I had a further ACPI Error -> in other SSDT there are references to GFX0 -> so that these also can not be loaded. I changes them but in SSDT-6-SaSsdt there is an error which I do not know how to fix: unexpected PARSEOP_NOTIFY in line 210:
Code:
Method (P0L6, 0, NotSerialized)
        {
            If (\_SB.ISME (P0WK, \_SB.SHPO (P0WK, One), Notify (\_SB.PCI0.PEG0, 0x02))){}
        }
I changed it to:
Code:
Method (P0L6, 0, NotSerialized)
        {
            If (\_SB.ISME (P0WK, \_SB.SHPO (P0WK, One)))
                {
                Notify (\_SB.PCI0.PEG0, 0x02)
                }
        }
Correct???

Further in line 267 there is the following:
Code:
Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
        {
            Return (GPRW)
            0x69
            0x04
        }
here I deleted both integers. Correct??

The same in line 507.

And at the end in line 4673:
Code:
Method (SGPI, 4, Serialized)
        {
            If (LEqual (Arg0, One))
            {
                If (CondRefOf (\_SB.GGOV))
                {
                    Store (\_SB.GGOV, Arg2)
                    Local0
                }
            }
            ElseIf (LEqual (Arg0, 0x02))
            {
                If (CondRefOf (\_SB.PCI0.GEXP.GEPS))
                {
                    Store (\_SB.PCI0.GEXP.GEPS, Arg1)
                    Arg2
                    Local0
                }
            }

            If (LEqual (Arg3, Zero))
            {
                Not (Local0, Local0)
                And (Local0, One, Local0)
            }

            Return (Local0)
        }

What is the solution here? I deleted all Local0??

Thank you for the help.

Refer to the the guide for correct disassembly procedures:
https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/
 
Status
Not open for further replies.
Back
Top