[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#487287: acpi: Negative value is show for temperature, fan constantly on



Am Sonntag, 22. Juni 2008 12:48 schrieb Michael Meskes:
> On Sun, Jun 22, 2008 at 10:43:25AM +0200, Adolf Winterer wrote:
> > The directory /sys/class/thermal does not exist.
>
> Which kernel do you run? Looks like a strange configuration here.
>
> > Look at the temperature!
> >
> > $ cat /proc/acpi/thermal_zone/THRM/temperature
> > temperature:             -73 C
>
> Yes, it reports a negative temperature. But this is reported by the
> kernel. acpi only reads this information and displays it. The problem
> doesn't seem to be in acpi, but in the kernel itself.

I did some more research regarding ACPI and found out that on both systems 
there is a flawed ACPI DSDT.

Using acpidump I stored the DSDT into a file and disassembled it with iasl. 
When comiling the file back into a binary file I get one warning and two 
errors on both systems which look quite similar.

# iasl -sa dsdt.dsl

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 15 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a

dsdt.dsl   378:     Method (\_WAK, 1, NotSerialized)
Warning  1079 -                 ^ Reserved method must return a value (_WAK)

dsdt.dsl   419:             Store (Local0, Local0)
Error    4049 -                         ^ Method local variable is not 
initialized (Local0)

dsdt.dsl   424:             Store (Local0, Local0)
Error    4049 -                         ^ Method local variable is not 
initialized (Local0)

ASL Input:  dsdt.dsl - 5129 lines, 163766 bytes, 1797 keywords
Compilation complete. 2 Errors, 1 Warnings, 0 Remarks, 571 Optimizations

I found a suggestion how to fix the warning, but did not find anything for the 
errors. The code looks like that:

    Scope (\_SI)
    {
        Method (_MSG, 1, NotSerialized)
        {
            Store (Local0, Local0)
        }

        Method (_SST, 1, NotSerialized)
        {
            Store (Local0, Local0)
        }
    }

I do not understand a single word from it, so there is not a real chance to 
fix it myself.

Some time ago I read about a DSDT fix that has been removed from the kernel, 
but I do not know if this is related to the problem we see here.

> Michael

-- 
"Man kann ein Problem nicht mit den gleichen Denkstrukturen lösen, die 
 zu seiner Entstehung beigetragen haben."           -- Albert Einstein



Reply to: