public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* NX6125 has insane thermal trip values
@ 2005-08-11 23:48 Matthew Garrett
       [not found] ` <20050811234836.GA32021-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Matthew Garrett @ 2005-08-11 23:48 UTC (permalink / raw)
  To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Booting a 64-bit kernel on an HP nx6125, the thermal trip values are set 
to 16 degrees centigrate by default. This seems to be due to the 
following block of code:

            If (LAnd (LEqual (\_SB.C031, 0x01), LAnd (LEqual (Arg0, 
0x00), LEqu\al (Arg1, 0x00))))
            {
                If (\_SB.C046.C0AD.C110.C164 ())
                {
                    Store (0x0B4B, Local2)
                }
            }

            If (LEqual (\_SB.C046.C054.C055, 0x01))
            {
                Store (0x0B4B, Local2)
            }

            Return (Local2)

which appears to explicitly set those temperatures. I'm assuming that 
this is only supposed to be triggered under a certain set of conditions, 
but HP's insistence on replacing all of their object names with crap 
makes me weep bitter tears of loathing and I really can't be bothered 
tracking this down. I've attached the DSDT - can anyone see any obvious 
reason why this code path should be triggered? I'll get in touch with HP 
anyway, and see if they can fix it in a newer BIOS revision.

-- 
Matthew Garrett | mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: NX6125 has insane thermal trip values
       [not found] ` <20050811234836.GA32021-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
@ 2005-08-12  7:32   ` Thomas Renninger
       [not found]     ` <42FC50A7.5090404-l3A5Bk7waGM@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Renninger @ 2005-08-12  7:32 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Matthew Garrett wrote:
> Booting a 64-bit kernel on an HP nx6125, the thermal trip values are set 
> to 16 degrees centigrate by default. This seems to be due to the 
> following block of code:
> 
>             If (LAnd (LEqual (\_SB.C031, 0x01), LAnd (LEqual (Arg0, 
> 0x00), LEqu\al (Arg1, 0x00))))
>             {
>                 If (\_SB.C046.C0AD.C110.C164 ())
>                 {
>                     Store (0x0B4B, Local2)
>                 }
>             }
> 
>             If (LEqual (\_SB.C046.C054.C055, 0x01))
>             {
>                 Store (0x0B4B, Local2)
>             }
> 
>             Return (Local2)
> 
> which appears to explicitly set those temperatures. I'm assuming that 
> this is only supposed to be triggered under a certain set of conditions, 
> but HP's insistence on replacing all of their object names with crap 
> makes me weep bitter tears of loathing and I really can't be bothered 
> tracking this down. I've attached the DSDT
Sorry, no DSDT attached.
> - can anyone see any obvious 
> reason why this code path should be triggered? I'll get in touch with HP 
> anyway, and see if they can fix it in a newer BIOS revision.
> 

I saw fixed temperatures embedded in an if/else clause quite often.
It seems as if BIOS programmers often misuse thermal zones to implement
a shutdown trigger for other purposes.

Normally only a critical trip point is exported and a temperature like
that is returned:

if (all_is_well)
      return temp_below_critical_tp;
else
      // trigger shutdown
      return temp_above_critical_tp;

As long as the temperature stays below, I wouldn't care.

This could get a problem if scripts like to automatically set tps according
to user configurations, as the kernel cuts of the position after the decimal
point.

The powersave daemon (sourceforge) can do that and triggered a critical shutdown
by only resetting the critical tp to the same value:
E.g. possible temperatures: 47 C, 49.9 C
critical BIOS trip point: 49.7 C

The kernel simply exports the rounded 50 C value as critical trip point (in fact 49.7).
Resetting it to 50 C triggers a shutdown.
If the /proc/acpi interface should ever be moved to /sys, people should consider to
export exact values to userspace if it is intended to be able to control fan activity,
which already works well on some laptops.

     Thomas



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: NX6125 has insane thermal trip values
       [not found]     ` <42FC50A7.5090404-l3A5Bk7waGM@public.gmane.org>
@ 2005-08-12  9:13       ` Matthew Garrett
  0 siblings, 0 replies; 3+ messages in thread
From: Matthew Garrett @ 2005-08-12  9:13 UTC (permalink / raw)
  To: Thomas Renninger; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

[-- Attachment #1: Type: text/plain, Size: 380 bytes --]

On Fri, Aug 12, 2005 at 09:32:55AM +0200, Thomas Renninger wrote:

> Sorry, no DSDT attached.

Oops - it should be this time.

> Normally only a critical trip point is exported and a temperature like
> that is returned:


Yeah. In this case, the critical temperature is fine (95 degrees). I'm a 
bit confused.
 
-- 
Matthew Garrett | mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org

[-- Attachment #2: nx6125.aml --]
[-- Type: application/octet-stream, Size: 28814 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-08-12  9:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-11 23:48 NX6125 has insane thermal trip values Matthew Garrett
     [not found] ` <20050811234836.GA32021-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
2005-08-12  7:32   ` Thomas Renninger
     [not found]     ` <42FC50A7.5090404-l3A5Bk7waGM@public.gmane.org>
2005-08-12  9:13       ` Matthew Garrett

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox