Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Mar 2009 21:50:21 -0400
From:      "Alexandre \"Sunny\" Kovalenko" <gaijin.k@gmail.com>
To:        Nate Lawson <nate@root.org>
Cc:        freebsd-acpi@FreeBSD.org, Ian Smith <smithi@nimnet.asn.au>, Chris Whitehouse <cwhiteh@onetel.com>
Subject:   Re: acpi_tz0: _CRT value is absurd,  ignored (256.0C) (was  pr kern/105537)
Message-ID:  <1238118621.1365.35.camel@RabbitsDen>
In-Reply-To: <49CC147A.3030805@root.org>
References:  <49C80E65.9090500@onetel.com> <49C93309.6050708@iki.fi> <20090325140718.J95588@sola.nimnet.asn.au>	<49C9EE50.6070507@onetel.com> <1237992462.1297.22.camel@RabbitsDen> <49CBF7D1.20102@onetel.com> <49CC147A.3030805@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2009-03-26 at 16:49 -0700, Nate Lawson wrote:
> Chris Whitehouse wrote:
> > Alexandre "Sunny" Kovalenko wrote:
> >> To be fair, if all you want is to override _CRT, you should be able to
> >> put something to the tune of
> >>
> >> hw.acpi.thermal.user_override=1
> >> hw.acpi.thermal.tz0._CRT=90C
> >>
> >> in your /etc/sysctl.conf and not deal with the ASL at all.
> > 
> > I tried this and it sets hw.acpi.thermal.tz0._CRT correctly until
> > hw.acpi.thermal.tz0.active and hw.acpi.thermal.tz0.temperature change
> > values at which point hw.acpi.thermal.tz0._CRT reverts to -1.
> >
> 
> Thermal zones are re-evaluated when a Notify comes in that says to do
> so. Perhaps if "user_override" is set to 1, we should not re-evaluate
> them. However, perhaps that should only be done for values the user
> actually overrode.
ACPI 2.0 spec explicitly talks about updating of the _PSV and _ACx on
Notify(..., 0x81). ACPI 3.0b is shade more vague, but still talking
about "active and passive cooling temperature trip points". Maybe we
should not reevaluate _HOT and _CRT at all?
> 
> There has to be a different solution Windows used. Maybe they ignore _crt.

Looking at ASL I can see five thermal zone objects defined and only one
of them (TZ4) looking somewhat normal: _CRT is 110C and _TMP method goes
to the trouble of making sane return value. Maybe Windows somehow knows
which thermal zones to ignore? Given the snippet below this _was_ geared
heavily towards Windows:

                    If (\_OSI ("Windows 2001"))
                    {
                        Store (0x04, C014)
                    }

                    If (\_OSI ("Windows 2001 SP1"))
                    {
                        Store (0x04, C014)
                    }

                    If (\_OSI ("Windows 2001 SP2"))
                    {
                        Store (0x05, C014)
                    }

                    If (\_OSI ("Windows 2006"))
                    {
                        Store (0x06, C014)
                    }

Chris, you should be able to set hw.acpi.osname=<pick one from the
above> in loader.conf and see if things improve somewhat. Note that
"Windows 2001" and "Windows 2001 SP1" are identical.

Could you also, please, post the full output of the sysctl
hw.acpi.thermal

-- 
Alexandre Kovalenko (Олександр Коваленко)





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1238118621.1365.35.camel>