On Wednesday 30 July 2008 18:17:48 Andi Kleen wrote:
> Thomas Renninger wrote:
> > This came in in OpenSUSE 10.3. When we still had overriden thermal
> > polling frequency (what we probably will do again soon). It has been
> > tested that specific ThinkPads do not throw a thermal event when
> > exceeding the passive trip point. Even thermal polling was not enough...
> > As no other solution has been found meanwhile and it seems Windows is
> > also using a virtual passive trip point:
>
> Ok that would be good evidence.
>
> > +   if (dmi_check_system(thermal_psv_dmi_table)) {
> > +           if (tz->trips.passive.flags.valid &&
> > +               tz->trips.passive.temperature > CELSIUS_TO_KELVIN(85)) {
This makes use of the macro CELSIUS_TO_KELVIN to show the better readable 
Celsius value.
temperature is internally stored in Kelvin*10
(e.g. tz->trips.{passive,active[i],hot,critical}.temperature)
> > +                   printk (KERN_INFO "Adjust passive trip point from %lu"
> > +                           " to %lu\n",
> > +                           
> > KELVIN_TO_CELSIUS(tz->trips.passive.temperature),
> > +                           KELVIN_TO_CELSIUS(tz->trips.passive.temperature 
> > - 150));
Here we show the user the real Celsius value calced back.
> > +                   tz->trips.passive.temperature -= 150;
>
> The hardcoded temperature numbers make me a little uneasy. Also 85 - 150
> is potentially negative, which is probably not good?
As said, stored in Kelvin*10. If you substract 150 you substract 15 degree 
Celsius or Kelvin.
Not sure whether there is a way to nicer show that.

Therefore the latest added test by Arjan for zero values returned for _CRT 
temperature looks like that:

+               /*
+                * Treat freezing temperatures as invalid as well; some
+                * BIOSes return really low values and cause reboots at 
startup.
+                * Below zero (Celcius) values clearly aren't right for sure..
+                * ... so lets discard those as invalid.
+                */
+               if (ACPI_FAILURE(status) ||
+                               tz->trips.critical.temperature <= 2732) {

A temperature value of zero degree Celsius evaluates to 2732: (0 + 273,2K) * 
10.

      Thomas

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
ibm-acpi-devel mailing list
ibm-acpi-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ibm-acpi-devel

Reply via email to