From owner-freebsd-acpi@FreeBSD.ORG Wed Apr 23 22:37:45 2008 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5EA33106564A for ; Wed, 23 Apr 2008 22:37:45 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from hosted.kievnet.com (hosted.kievnet.com [193.138.144.10]) by mx1.freebsd.org (Postfix) with ESMTP id 184428FC25 for ; Wed, 23 Apr 2008 22:37:44 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from localhost ([127.0.0.1] helo=edge.pp.kiev.ua) by hosted.kievnet.com with esmtpa (Exim 4.62) (envelope-from ) id 1Jonax-00076q-9Z; Thu, 24 Apr 2008 01:37:43 +0300 Message-ID: <480FBA31.2050202@icyb.net.ua> Date: Thu, 24 Apr 2008 01:37:37 +0300 From: Andriy Gapon User-Agent: Thunderbird 2.0.0.12 (X11/20080320) MIME-Version: 1.0 To: Nate Lawson References: <480F8E2E.8000502@icyb.net.ua> <480F921D.3050505@root.org> In-Reply-To: <480F921D.3050505@root.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: initial value of tz_active X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Apr 2008 22:37:45 -0000 on 23/04/2008 22:46 Nate Lawson said the following: > Andriy Gapon wrote: >> It seems that tz_active (in acpi_thermal) is initialized to NONE/-1. >> I don't have a patch, but I have an idea - acpi_thermal should query >> current power state of fans and set tz_active based on that. >> For example, some systems start up with all fans turned on (at full >> speed) for safety reasons, acpi_thermal sees that temperature is low >> enough, it thinks/assumes that no fan is active, so it doesn't change AC >> level, so in reality AC0 is always in effect. > > Good point. I think there should be a "first_time" static that is set > on boot. Once acpi_thermal decides to turn some fans on or off, > first_time is set. Until it has been set, all fan control is actually > performed, regardless of tz_active. After it is set, we can depend on > tz_active as before. > > The reason we can't just read the fan status and initialize tz_active > accordingly is that some ASL doesn't return the real value of the fans. > It just returns a hard-coded value. On many systems, it does return > the real value but if even one system is wrong, we can't trust any of them. > I agree - this is a better approach. On a technical level - maybe use TZ_ACTIVE_UNKNOWN=-2 instead of a new variable. I'll try to work on this somewhere in the middle of May. -- Andriy Gapon