Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Mar 2004 17:57:08 +0200
From:      Bruno Ducrot <ducrot@poupinou.org>
To:        "Moore, Robert" <robert.moore@intel.com>
Cc:        Nate Lawson <nate@root.org>
Subject:   Re: [acpi-jp 3117] RE: ACPI-CA 20040311 imported
Message-ID:  <20040328155708.GC19001@poupinou.org>
In-Reply-To: <37F890616C995246BE76B3E6B2DBE055201C6C@orsmsx403.jf.intel.com>
References:  <37F890616C995246BE76B3E6B2DBE055201C6C@orsmsx403.jf.intel.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040328155708.GC19001>