Skip site navigation (1)Skip section navigation (2)
Date:      19 Nov 1997 11:57:58 +0900
From:      HAMADA Naoki <hamada@astec.co.jp>
To:        Nate Williams <nate@mt.sri.com>
Cc:        freebsd-mobile@FreeBSD.org
Subject:   Re: APM and Compaq Contura 400CX
Message-ID:  <ixu3d9fv49.fsf@astec.co.jp>
In-Reply-To: Nate Williams's message of 18 Nov 1997 21:05:33 -0000
References:  <Pine.BSF.3.96.971118172917.29329A-100000@kn6-045.ktvlpr.inet.fi> <199711182043.NAA03016@mt.sri.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Nate Williams <nate@mt.sri.com> writes:
>> Otherwise, the system
>> goes into infinite loop trying to process another
>> suspend request and another and another... Eventually
>> it crashes.
> 
>This is no good.  I could easily fix this, but I'm not sure what's the
>best way to do this and still maintain compatability with other
>machines/specificiations.  Fixing it to work on your machine may break
>it on other machines. :(

Compaq seems to have some different idea to cope with APM. When the
APM driver sends APM_SETPWSTATE command which sets the state to
PMST_SUSPEND, the APM BIOS generates PMEV_STANDBYREQ event. Then
FreeBSD's APM driver invokes apm_suspend(), which is quite strange
because the bios requires not suspend but standby. The APM driver
sends APM_SETPWSTATE command, and the APM BIOS generates
PMEV_STANDBYREQ event, so, alas, it loops infinitely until the stack
corrupts.

Ignoring spurious PMEV_STANDBYREQ is another solution, but it must be
far from the right thing.

- nao



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