From owner-freebsd-mobile@FreeBSD.ORG Wed Apr 18 05:27:29 2007 Return-Path: X-Original-To: mobile@freebsd.org Delivered-To: freebsd-mobile@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AD10116A401 for ; Wed, 18 Apr 2007 05:27:29 +0000 (UTC) (envelope-from grafan@gmail.com) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.175]) by mx1.freebsd.org (Postfix) with ESMTP id 4481F13C44B for ; Wed, 18 Apr 2007 05:27:28 +0000 (UTC) (envelope-from grafan@gmail.com) Received: by ug-out-1314.google.com with SMTP id 71so282186ugh for ; Tue, 17 Apr 2007 22:27:28 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=m9cADchyVj9PKiIzDvMeplzCyJqYQNXYdRxJEDyetLHiPtvsz0Yzja0zuxeGnBz1P/EqcbsLgEinCsWgCZLVkoNtRFtmLv1dbCWu5qz6nY4FFdJSd05wigoD4i+vtLzZpN3A7yHxXp8ATw056vGsy4dXYXhryIpEJjqTeIriyDY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=FXMQPPPi8YRWdFnsXvZxAJJXU+6PHzH2XJz4KpOJ32emj1TN7vwHa6BWQevX6CurHzvr8sztGOtBzF+XU++L5ln6nb1xC/BrDcP6+ADOeXPTVm3IzzDHW5kmlTAy3WQpHe2ntsr1KT6O3jBK34kr4B5eKS2u0DuCIUNUYNrJ9S8= Received: by 10.82.158.12 with SMTP id g12mr97937bue.1176874047873; Tue, 17 Apr 2007 22:27:27 -0700 (PDT) Received: by 10.82.106.12 with HTTP; Tue, 17 Apr 2007 22:27:27 -0700 (PDT) Message-ID: <6eb82e0704172227y6c62846l24c9aafab299cb9@mail.gmail.com> Date: Wed, 18 Apr 2007 13:27:27 +0800 From: "Rong-en Fan" To: "Nate Lawson" In-Reply-To: <4625A70C.1000506@root.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <6eb82e0704171645n5f7b2ca6h41b41016cdafad24@mail.gmail.com> <4625601C.9000201@root.org> <6eb82e0704172055l5bddca81t5b7e9e45a297a839@mail.gmail.com> <4625A70C.1000506@root.org> Cc: acpi@freebsd.org, mobile@freebsd.org Subject: Re: acpi_ibm(4): new radio kill switch (readonly) sysctl X-BeenThere: freebsd-mobile@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Mobile computing with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Apr 2007 05:27:29 -0000 On 4/18/07, Nate Lawson wrote: > Rong-en Fan wrote: > > On 4/18/07, Nate Lawson wrote: > >> Rong-en Fan wrote: > >> > As pointed out by Henrik Brix Andersen, I adds a sysctl entry > >> > that shows the status of radio kill switch found on some ThinkPad: > >> > > >> > http://people.freebsd.org/~rafan/acpi_ibm_killswitch.diff > >> > > >> > dev.acpi_ibm.0.killswitch = 0 means the switch is off. It seems that > >> > no acpi event will be generated when the value changes (actually, > >> > my x60 does not generate any events when I presses FN+something). > >> > Otherwise, we can hook it in devd.conf and remove wireless driver when > >> > kill switch is on... > >> > > >> > Any comments? > >> > >> Seems fine to me. But as to the name of the sysctl -- it should be more > >> logical. How about renaming it to dev.acpi_ibm.0.radio_enable and when > >> 1, the radio is enabled? Even if you have to invert the logic of the > >> ACPI method, it would make more sense to users. They don't need to know > >> what's going on under the hood. > > > > Good idea. I updated the patch: > > > > http://people.freebsd.org/~rafan/acpi_ibm_radio_switch.diff > > > > If you have ThinkPad other than X60, please help test this. > > This code seems suspect: > > + case ACPI_IBM_METHOD_RADIO_SWITCH: > + acpi_GetInteger(sc->handle, IBM_NAME_RADIO_SWITCH_GET, &val); > + sc->radio_switch_state = val; > + val = (val != 0); > + break; > > The switch state is set to the return value of the AML method. Then if > it is 0, val is set to 0 and if it is 1, val is set to 1. Don't you > mean to invert val? If so, this should be sufficient: > > /* Invert the radio kill switch for the user. */ > sc->radio_switch_state = !val; Sorry, I update the patch. It should be correct now. Should have morning coffee first :-) Regards, Rong-En Fan > > -- > Nate >