[Bugme-new] [Bug 10686] New: critical thermal shutdown regression 2.6.26-rc1 - HP Pavilion dv6700

bugme-daemon at bugzilla.kernel.org bugme-daemon at bugzilla.kernel.org
Mon May 12 20:04:35 PDT 2008


http://bugzilla.kernel.org/show_bug.cgi?id=10686

           Summary: critical thermal shutdown regression 2.6.26-rc1 - HP
                    Pavilion dv6700
           Product: ACPI
           Version: 2.5
     KernelVersion: 2.6.26-rc1
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: BIOS
        AssignedTo: acpi_bios at kernel-bugs.osdl.org
        ReportedBy: len.brown at intel.com
        Regression: 1


Latest working kernel version: 2.6.25
Earliest failing kernel version: 2.6.26-rc1

In 2.6.25 we got this:

ACPI Exception (thermal-0365): AE_BAD_DATA, No critical threshold [20070126]

and /proc/acpi/thermal_zone was empty

In 2.6.26-rc1 we got this:
/proc/acpi/thermal_zone/THR1/cooling_mode:<setting not supported>
/proc/acpi/thermal_zone/THR1/polling_frequency:<polling disabled>
/proc/acpi/thermal_zone/THR1/state:state:                   critical 
/proc/acpi/thermal_zone/THR1/temperature:temperature:             50 C
/proc/acpi/thermal_zone/THR1/trip_points:critical (S5):           -73 C
<disabled>
/proc/acpi/thermal_zone/THR1/trip_points:hot (S4):                120 C
<disabled>
/proc/acpi/thermal_zone/THR1/trip_points:passive:                 92 C: tc1=2
tc2=3 tsp=30 devices=CPU0 CPU1 

though the system was booted with thermal.nocrt=1
in order to disable the critical trip point --
else the system would reboot...

The AML for _CRT is clearly broken.
Interestingly, for non Windows 2006, it appears that _HOT is broken too:

           Store (0x07D0, OSYS)
            If (CondRefOf (_OSI, Local0))
            {
                If (_OSI ("Linux"))
                {
                    Store (One, LINX)
                }

                If (_OSI ("Windows 2001"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (0x07D2, OSYS)
                }

                If (_OSI ("Windows 2006"))
                {
                    Store (0x07D6, OSYS)
                }
            }

...
            Method (_HOT, 0, Serialized)
            {
                If (LEqual (OSYS, 0x07D6))
                {
                    If (LEqual (\_SB.TJ85, Zero))
                    {
                        Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
                    }
                    Else
                    {
                        Return (Add (0x0AAC, Multiply (TP85, 0x0A)))
                    }
                }
            }

            Method (_CRT, 0, Serialized)
            {
                If (LLess (OSYS, 0x07D6))
                {
                    If (LEqual (\_SB.TJ85, Zero))
                    {
                        Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
                    }
                    Else
                    {
                        Return (Add (0x0AAC, Multiply (TP85, 0x0A)))
                    }
                }
            }

So it appears that in the interest of being "bug compatible"
and conjuring up an "implicit return" here, we conjured up
a value that tubed the system when we should have disabled
_CRT (if not the entire thermal zone).


-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


More information about the Bugme-new mailing list