From owner-freebsd-current@FreeBSD.ORG Sun Mar 28 07:57:52 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6319F16A4CE for ; Sun, 28 Mar 2004 07:57:52 -0800 (PST) Received: from poup.poupinou.org (poup.poupinou.org [195.101.94.96]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0705743D49 for ; Sun, 28 Mar 2004 07:57:52 -0800 (PST) (envelope-from ducrot@poupinou.org) Received: from ducrot by poup.poupinou.org with local (Exim) id 1B7ceq-0000Ym-00; Sun, 28 Mar 2004 17:57:08 +0200 Date: Sun, 28 Mar 2004 17:57:08 +0200 To: "Moore, Robert" Message-ID: <20040328155708.GC19001@poupinou.org> References: <37F890616C995246BE76B3E6B2DBE055201C6C@orsmsx403.jf.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <37F890616C995246BE76B3E6B2DBE055201C6C@orsmsx403.jf.intel.com> User-Agent: Mutt/1.5.4i From: Bruno Ducrot cc: acpi-jp@jp.FreeBSD.org cc: current@freebsd.org cc: Nate Lawson Subject: Re: [acpi-jp 3117] RE: ACPI-CA 20040311 imported X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Mar 2004 15:57:52 -0000 On Fri, Mar 26, 2004 at 01:52:21PM -0800, Moore, Robert wrote: > Here's an example of ASL recursion: > > Method(PWUP,0,NotSerialized) > { > If(LAnd(\_SB.PCI0.CBS0.PWRS,\_SB.PCI0.CBS1.PWRS)) > { > If(LNot(And(_ADR /* \_SB.PCI0.CBS0._ADR */,0xFFFF))) > { > And(MCTL /* \_SB.PCI0.CBS0.MCTL */,0x7C,Local0) > Or(Local0,BMCL /* \_SB.PCI0.CBS0.BMCL */,MCTL /* > \_SB.PCI0.CBS0.MCTL */) > } > Else > { > \_SB.PCI0.CBS0.PWUP() > } > } > } I assume that PWRS are some hardware io (pci conf probably), able to detect if the cardbus is powered or not. I assume _ADR can not be made dynamic. So far, this function look like: Method(PWUP, 0, NotSerialized) { While (Not((LAnd(\_SB.PCI0.CBS0.PWRS,\_SB.PCI0.CBS1.PWRS))) { Noop } } and is probably called from _WAK, or more likely from _PS0 so far I guess it is ok to busy loop (in both form). Why not writting the busy loop instead? In the original form, there is the possibility to crash the system by overflowing the kernel stack if the bus is not powered quickly. -- Which is worse: ignorance or apathy? -- Don't know. Don't care.