Page 2 of 2 FirstFirst 12
Results 11 to 13 of 13

Thread: How To Fix Your Buggy DSDT

  1. #11
    Join Date
    Mar 2008
    Location
    Kentucky
    Posts
    1,126

    Default Re: How To Fix Your Buggy DSDT

    Today, I used the first posts in this thread to take a look at the DSDT in my 11.1 rc1 x86-64 install on my nForce5 system. Here are the results:
    Code:
    jim@linux-d9wa:~> ./iasl -tc dsdt.dsl
    
    Intel ACPI Component Architecture
    ASL Optimizing Compiler version 20080729 [Nov 22 2008]
    Copyright (C) 2000 - 2008 Intel Corporation
    Supports ACPI Specification Revision 3.0a
    
    dsdt.dsl   349:     Method (\_WAK, 1, NotSerialized)
    Warning  1080 -                 ^ Reserved method must return a value (_WAK)
    
    ASL Input:  dsdt.dsl - 7014 lines, 220330 bytes, 2648 keywords
    AML Output: /home/jim/dsdt.aml - 23786 bytes, 938 named objects, 1710 executable opcodes
    
    Compilation complete. 0 Errors, 1 Warnings, 0 Remarks, 778 Optimizations
    As there are no errors, it's hardly worth fixing save for the 778 Optimizations made to the DSDT over the original M$ compiller. So, I went ahead & fixed it using the info on post #2
    Code:
    jim@linux-d9wa:~> ./iasl -tc dsdt.dsl
    
    Intel ACPI Component Architecture
    ASL Optimizing Compiler version 20080729 [Nov 22 2008]
    Copyright (C) 2000 - 2008 Intel Corporation
    Supports ACPI Specification Revision 3.0a
    
    ASL Input:  dsdt.dsl - 7015 lines, 220369 bytes, 2649 keywords
    AML Output: /home/jim/dsdt.aml - 23792 bytes, 938 named objects, 1711 executable opcodes
    
    Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 780 Optimizations
    jim@linux-d9wa:~>
    Finally, I implimented it & all went swimingly well. The HP DV9700z will come next (when I have time).
    Last edited by snakedriver; 21-Dec-2008 at 07:30.
    Desktop Asus X-99 Viper. uefi & secure Boot, Win10, Leap 15.1; Laptop: ASUS GL752VW Optimus, uefi+Secure Boot, Win10, Leap 15.1 & T-weed and IMac

  2. #12
    Join Date
    Mar 2008
    Location
    Kentucky
    Posts
    1,126

    Default Re: How To Fix Your Buggy DSDT

    Update: Fixing the DSDT on my HP dv9700z & openSUSE 11.1

    I now have Method (_HOT, 0, Serialized) and Method (_CRT, 0, Serialized) working; however, I am still working a PMIO issue that I requested help with @ Need some BIOS (DSDT) dsopcode Help - openSUSE Forums

    To get right with it, I followed the howto and have these errors and warnings:
    Code:
    linux-2g8z:/home/jim # ./iasl -tc dsdt.dsl
    
    Intel ACPI Component Architecture
    ASL Optimizing Compiler version 20080729 [Nov 22 2008]
    Copyright (C) 2000 - 2008 Intel Corporation
    Supports ACPI Specification Revision 3.0a
    
    dsdt.dsl    99:     Method (\_WAK, 1, NotSerialized)
    Warning  1080 -                 ^ Reserved method must return a value (_WAK)
    
    dsdt.dsl  3676:                 Method (_Q16, 0, NotSerialized)
    Warning  1087 -                            ^ Not all control paths return a value (_Q16)
    
    dsdt.dsl  6750:                     Method (_EJ0, 0, NotSerialized)
    Warning  1077 -                                ^ Reserved method has too few arguments (_EJ0 requires 1)
    
    dsdt.dsl  8056:                 Method (_HOT, 0, Serialized)
    Warning  1087 -                            ^ Not all control paths return a value (_HOT)
    
    dsdt.dsl  8056:                 Method (_HOT, 0, Serialized)
    Warning  1080 -                            ^ Reserved method must return a value (_HOT)
    
    dsdt.dsl  8058:                     Zero
    Error    4095 -                        ^ syntax error, unexpected PARSEOP_ZERO
    
    dsdt.dsl  8065:                 Method (_CRT, 0, Serialized)
    Warning  1087 -                            ^ Not all control paths return a value (_CRT)
    
    dsdt.dsl  8065:                 Method (_CRT, 0, Serialized)
    Warning  1080 -                            ^ Reserved method must return a value (_CRT)
    
    dsdt.dsl  8067:                     Zero
    Error    4095 -                        ^ syntax error, unexpected PARSEOP_ZERO
    
    ASL Input:  dsdt.dsl - 8479 lines, 298520 bytes, 4483 keywords
    Compilation complete. 2 Errors, 7 Warnings, 0 Remarks, 1227 Optimizations
    linux-2g8z:/home/jim #
    Most of the previous work in Section 3 post #3 thru #10 still applies save that for:
    Method (_HOT, 0, Serialized) and Method (_CRT, 0, Serialized)

    Let's cut to the code:
    Original
    Code:
                    Method (_HOT, 0, Serialized)
                    {
                        Zero
                        If (LEqual (OSYS, 0x07D6))
                        {
                            Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
                        }
                    }
    
                    Method (_CRT, 0, Serialized)
                    {
                        Zero
                        If (LLess (OSYS, 0x07D6))
                        {
                            Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
                        }
                    }
    Fixed
    Code:
                ThermalZone (THRM)
                {
                    Method (_HOT, 0, Serialized)
                    {
    //                    If (LEqual (OSYS, 0x07D6))
    //                    {
                            Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
    //                    }
                    }
    
                    Method (_CRT, 0, Serialized)
                    {
    //                    If (LLess (OSYS, 0x07D6))
    //                    {
                            Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
    //                    }
                    }
    Note: I deleted the "zero"s
    Of course I applied the fixes as previously discussed.

    That, plus the other previously discussed fixes compiles w/o errors or warnings plus 1232 Optimizations.

    Previous to the fix I was getting no acpi thermal funcfion:
    /proc/acpi/thermal_zone/ is empty
    and
    jim@linux-2g8z:~> acpi -t
    Battery 1: charged, 100%, rate information unavailable.
    No support for device type: thermal.

    With the fixes, I am getting:
    jim@linux-2g8z:~> acpi -t
    Battery 1: charged, 100%, rate information unavailable.
    Thermal 1: ok, 43.0 degrees C
    jim@linux-2g8z:~>
    and
    jim@linux-2g8z:~> cat /proc/acpi/thermal_zone/THRM/temperature
    temperature: 41 C
    and
    jim@linux-2g8z:~> cat /proc/acpi/thermal_zone/THRM/trip_points
    critical (S5): 95 C
    hot (S4): 95 C
    passive: 88 C: tc1=2 tc2=3 tsp=100 devices=CPU0
    and
    jim@linux-2g8z:~> cat /proc/acpi/thermal_zone/THRM/state
    state: ok
    and
    jim@linux-2g8z:~> cat /proc/acpi/thermal_zone/THRM/cooling_mode
    0 - Active; 1 - Passive.

    Fixing your DSDT is worth doing

    I still have one issue that has me stumped ATM -- PMIO -- that's @ Need some BIOS (DSDT) dsopcode Help - openSUSE Forums
    I'll update that next (as time permits).
    Desktop Asus X-99 Viper. uefi & secure Boot, Win10, Leap 15.1; Laptop: ASUS GL752VW Optimus, uefi+Secure Boot, Win10, Leap 15.1 & T-weed and IMac

  3. #13

    Default Re: How To Fix Your Buggy DSDT

    Hello, I have a hpDV7 3601
    with this warnings

    Method (_HOT, 0, Serialized) Warning 1088 - Not all control paths return a value ^ (_HOT)
    Method (_HOT, 0, Serialized) Warning 1081 - Reserved method must return a value ^ (_HOT)
    Method (_CRT, 0, Serialized) Warning 1088 - Not all control paths return a value ^ (_CRT)
    Method (_CRT, 0, Serialized)Warning 1081 - Reserved method must return a value ^ (_CRT)
    in my dsdt:
    Method (_HOT, 0, Serialized)
    {
    If (LGreaterEqual (OSYS, 0x07D6))
    {
    If (LEqual (TJMX, 0x64))
    {
    Return (0x0EC6)
    }

    If (LEqual (TJMX, 0x55))
    {
    Return (0x0E30)
    }

    If (LEqual (TJMX, 0x69))
    {
    Return (0x0EF8)
    }

    If (LEqual (TJMX, 0x5A))
    {
    Return (0x0E62)
    }
    }
    }

    Method (_CRT, 0, Serialized)
    {
    If (LLess (OSYS, 0x07D6))
    {
    If (LEqual (TJMX, 0x64))
    {
    Return (0x0EC6)
    }

    If (LEqual (TJMX, 0x55))
    {
    Return (0x0E30)
    }

    If (LEqual (TJMX, 0x69))
    {
    Return (0x0EF8)
    }

    If (LEqual (TJMX, 0x5A))
    {
    Return (0x0E62)
    }
    }
    }
    How can I fix?
    Thnks a lot

Page 2 of 2 FirstFirst 12

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •