Re: Radeon AGP suspend/resume support (was: Re: Thinkpad T41 Sleep issues)

From: Bruce M Simpson <bms_at_spc.org>
Date: Fri, 8 Oct 2004 15:36:00 -0700
Hello,

I should be most grateful if someone else could confirm my findings here.
This is based purely on my reading of the code; I haven't tried watching
debug messages yet to see what happens.

On Fri, Oct 08, 2004 at 03:27:58AM -0700, Bruce M Simpson wrote:
> Ok. Well some initial research suggests that many of the userland pieces are
> already there in xorg 6.7.0, after some rummaging around in the source:
> 	http://www.spinics.net/lists/xf-xpert/msg04368.html

Actually the problem is worse than that, from what I can see. There is a
module in the xorg/Xfree86 tree called bsd_apm.c. This is meant to poll
the /dev/apm device on the BSDs for suspend/resume event notifications
coming from the APM BIOS.

There are two problems with this:
 1) This uses a NetBSD specific interface, which, whilst broadly similar
    to FreeBSD's apm support, is not ABI compatible with ours.
 2) The ACPI apm shim does not dispatch such events. They are only
    dispatched within the system if 'real' BIOS APM support is in the
    kernel.  This cannot co-exist with ACPI. Furthermore they are only
    announced on the /dev/apmctl device; there are some comments in the
    code to this effect.

So *no* suspend/resume support ever actually gets called, for any userland
driver in the X tree, on FreeBSD. It seems X needs to be re-educated about
how FreeBSD suspends and resumes. It may well be more appropriate to rewrite
this module entirely from scratch for use with ACPI.

This would seem to boil down to two components being needed:
 a) AGP suspend/resume support.
 b) X.org/XF86 support for suspend/resume with ACPI.

Regards,
BMS

Received on Fri Oct 08 2004 - 20:36:09 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:16 UTC