Integrating OS power management with the X server

Benjamin Herrenschmidt benh at kernel.crashing.org
Sat Oct 30 18:48:00 PDT 2004


On Tue, 2004-10-26 at 14:21 -0700, Keith Packard wrote:
> > Why isn't a simple xrefresh() (i.e. asking all windows to redraw
> > themselves) sufficient ?
> 
> The X server stores pixmap data in video memory, which cannot be
> reconstructed in this manner.  I did fix the XFree86 DDX several years ago
> to not store the contents of the screen as well, by using a  mechanism
> equivalent to xrefresh.
> 
> The video card is also returned to whatever mode seen when the X server
> started so that console messages can be seen while the machine is changing
> power states.
> 
> This is all handled by the same mechanisms which deal with VT switching,
> the only difference being that there is no VT switch in this case.

That and more...

To summarize, the video card has to be returned to some sane & idle
state (DRI stopped, etc...) before suspend can proceed. Upon resume the
video card will eventually have been totally reset, including the AGP
state. So the DRI must be completely re-initialized, and any 2D state
restored.

Ben.





More information about the xorg mailing list