Subject: Re: APM *and* ACPI or is it APM *or* ACPI?
To: BlueAgent <blueagent@subdimension.com>
From: Patrick Welche <prlw1@newn.cam.ac.uk>
List: port-i386
Date: 02/11/2003 12:26:10
On Tue, Feb 11, 2003 at 11:08:16PM +1100, BlueAgent wrote:
> On Tue, Feb 11, 2003 at 11:04:28AM +0100, Ignatios Souvatzis wrote:
> > hi,
> 
> G'day,
> 
> > On Mon, Feb 10, 2003 at 10:47:08PM -0500, Perry E. Metzger wrote:
> > 
> > > What you'll need to do is to execute the appropriate ACPI method to
> > > assure that the fan is turned on when ACPI gets an event indicating
> > > that the temperature has gotten too high. See section 12 of the ACPI
> > > manual.
> > 
> > Yet another stupid design decision in PC hardware. Fans should auto-switch
> > on when the temperature is too high. Implemented in hardware. I guess we can't
> > circumvent this? (Other than keeping the fan always running)
> 
> I guess there should be some way to circumvent this, Windows seems to
> be able to control fan speed on my brand new HP Pavilion 724a. While
> running FreeBSD and going through POST, it runs at full speed, which is
> the default. When I boot Windows on it, the fan slows down as soon as it
> reaches the Windows XP splash screen, and it occasionally spins up when
> I'm doing something intensive. I've got no clue how well this sort of
> thing is documented, though.

Curiouser and curiouser: on my second hand pavilion zt1141s I get your
Windows behaviour under NetBSD. Spins up when compiling, stops when idle.
I just have whatever acpi is in -current/i386 on it, no apm, and that is
despite acpi not appearing to be overly happy on it:

evregion-0341 [16] EvAddressSpaceDispatch: no handler for region(0xc09bde28) [EmbeddedControl]
 exfldio-0324 [15] ExAccessRegion        : Region EmbeddedControl(3) has no handler
 dswexec-0526 [08] DsExecEndOp           : [Store]: Could not resolve operands, AE_NOT_EXIST
 psparse-1286: *** Error: Method execution failed [\_SB_.AC__._PSR] (Node 0xc09b5da8), AE_NOT_EXIST
acpibat0 at acpi0 (PNP0C0A-<null>): ACPI Battery (Control Method)
evregion-0341 [16] EvAddressSpaceDispatch: no handler for region(0xc09bde28) [EmbeddedControl]
 exfldio-0324 [15] ExAccessRegion        : Region EmbeddedControl(3) has no handler
 dswexec-0526 [08] DsExecEndOp           : [Store]: Could not resolve operands, AE_NOT_EXIST
 psparse-1286: *** Error: Method execution failed [\_SB_.BAT0._BIF] (Node 0xc09b5728), AE_NOT_EXIST
acpibat0: failed to evaluate _BIF: 6
evregion-0341 [16] EvAddressSpaceDispatch: no handler for region(0xc09bde28) [EmbeddedControl]
 exfldio-0324 [15] ExAccessRegion        : Region EmbeddedControl(3) has no handler
 dswexec-0526 [08] DsExecEndOp           : [Store]: Could not resolve operands, AE_NOT_EXIST
 psparse-1286: *** Error: Method execution failed [\_SB_.BAT0._BST] (Node 0xc09b5628), AE_NOT_EXIST
bat: failed to evaluate _BST: 6
PNP0A03 [PCI Bus] at acpi0 not configured
...
npx1 at acpi0 (PNP0C04)
   rsirq-0237 [06] RsIrqResource         : Invalid interrupt polarity/trigger in resource list
npx1: ACPI: unable to get Current Resources: 4100
...
acpitz0 at acpi0 (): ACPI Thermal Zone
acpitz0: failed to evaluate _TZP: 5
...
ACPI: WARNING: Callback scheduled before thread present.

(and yet it still has the desired behaviour :-) )

Cheers,

Patrick