Date: Wed, 22 Oct 2008 09:47:43 -0400 From: "Alexandre \"Sunny\" Kovalenko" <gaijin.k@gmail.com> To: Lars Engels <lme@FreeBSD.org> Cc: acpi@FreeBSD.org Subject: Re: acpi_tz1: _CRT value is absurd, ignored (256.0C) Message-ID: <1224683263.2199.24.camel@RabbitsDen> In-Reply-To: <20081022101506.zfazdtjeskwg8sgc@0x20.net> References: <20081021140617.ejzk8i5wpskksc4w@0x20.net> <48FE121B.3000206@root.org> <20081022101506.zfazdtjeskwg8sgc@0x20.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2008-10-22 at 10:15 +0200, Lars Engels wrote: > Quoting Nate Lawson <nate@root.org>: > > > >> hw.acpi.thermal.tz1._CRT: -1 > >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > >> hw.acpi.thermal.tz1._ACx: 89.0C 83.0C 60.0C 50.0C 40.0C -1 -1 -1 -1 -1 > >> hw.acpi.thermal.tz1._TC1: 1 > >> hw.acpi.thermal.tz1._TC2: 2 > >> hw.acpi.thermal.tz1._TSP: 300 > > > > We could try to work around it in the tz poll routine. Or, you could > > set the _CRT value to something reasonable via sysctl. man acpi_thermal > > to see how. You have to specify user_override to unlock the sysctl. > > 105C seems reasonable based on other settings in tz2-3. > > Setting the sysctl doesn't work: > > Oct 22 09:50:15 NB0117232 sudo: engels : TTY=pts/3 ; > PWD=/usr/home/engels ; USER=root ; COMMAND=/sbin/sysctl > hw.acpi.thermal.user_override=1 > Oct 22 09:50:45 NB0117232 kernel: acpi_tz1: _CRT value is absurd, > ignored (256.0C) > Oct 22 09:50:55 NB0117232 sudo: engels : TTY=pts/3 ; > PWD=/usr/home/engels ; USER=root ; COMMAND=/sbin/sysctl > hw.acpi.thermal.tz1._CRT=105C > Oct 22 09:51:03 NB0117232 kernel: acpi_tz1: _CRT value is absurd, > ignored (256.0C) > > hw.acpi.thermal.tz1._CRT: -1 > > It is only set to the overridden value for a moment and is then set > back to -1. I suspect that ASL re-evaluates _CRT and tells FreeBSD to re-read it based on some event. I would have expected 'user_override' to block the update. I might be completely off the mark, though. > > So a workaround in the code would be nice. In the time being you should be able to dump our ASL (see Handbook for instructions), look for something like Scope (\_TZ) { ... ThermalZone (THM1) { ... Method (_CRT, 0, NotSerialized) { <possible some other statements> Return (<something or other>) } where THM1 is just a name, so it could be different in your case. You need to find one for the zone #1 inside the Scope(\TZ) definition. I think FreeBSD numbers them sequentially, regardless of the name, so this would be the second ThermalZone definition in the scope. If you want 105C, put Return(0xEC6); in there. The value 0xEC6 = 105 * 0xA + 0xAAC. If _CRT method is not there, you should be safe to add one, consisting of the single return statement. You would have to recompile ASL and set it to override on boot (see Handbook). As the side note, thermal chapter of the ACPI spec is both short and readable, so if you'd rather understand where did all of this come from, I would recommend reading through it. HTH, -- Alexandre "Sunny" Kovalenko (Олександр Коваленко)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1224683263.2199.24.camel>