From owner-freebsd-acpi@FreeBSD.ORG Tue Feb 12 08:29:04 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 E13B916A418 for ; Tue, 12 Feb 2008 08:29:04 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.freebsd.org (Postfix) with ESMTP id A7E1313C468 for ; Tue, 12 Feb 2008 08:29:04 +0000 (UTC) (envelope-from nate@root.org) Received: (qmail 4888 invoked from network); 12 Feb 2008 08:29:07 -0000 Received: from adsl-71-141-98-131.dsl.snfc21.pacbell.net (HELO ?192.168.1.77?) (nate-mail@71.141.98.131) by root.org with ESMTPA; 12 Feb 2008 08:29:07 -0000 Message-ID: <47B158C9.1030007@root.org> Date: Tue, 12 Feb 2008 00:28:57 -0800 From: Nate Lawson User-Agent: Thunderbird 2.0.0.9 (Windows/20071031) MIME-Version: 1.0 To: Andriy Gapon References: <47A3451E.5060803@icyb.net.ua> <47B0BE5E.1070108@icyb.net.ua> In-Reply-To: <47B0BE5E.1070108@icyb.net.ua> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: no way to force AC state if current one is none 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: Tue, 12 Feb 2008 08:29:05 -0000 Andriy Gapon wrote: > on 01/02/2008 18:13 Andriy Gapon said the following: >> I noticed that I can force AC state change via sysctl if current state >> is none/-1. > > Typo above, it should read "I can not". > >> acpi_tz_monitor() has the following lines: >> >> /* Handle user override of active mode */ >> if (sc->tz_requested != TZ_ACTIVE_NONE && sc->tz_requested < newactive) >> newactive = sc->tz_requested; >> >> If say tz_requested is 1, but auto-calculated newactive is -1 (none), >> then this check fails and tz_requested is ignored. > > Small extra note: this is because the "none" state (least/zero cooling > activity) has code -1, while other states are arranged so that the lower > the number the higher cooling activity is. So there is an exclusion from > normal integer comparison. > >> It seems there should be a check that newactive is not -1: >> if (sc->tz_requested != TZ_ACTIVE_NONE && (newactive == TZ_ACTIVE_NONE >> || sc->tz_requested < newactive)) >> >> What do you think ? > > Should I file a PR ? Does anybody care ? > I think that this is a possible situation to want this in real life. Don't file a PR, I'll review what you sent. Thanks for both bug fixes/hunting. -- Nate