














       Frame Buffer Power Management (FBPM) Extension

                   Library Specification



                        Version 1.2
                  XServer upgrade project
                 X Version 11, Release 6.4






                         Jay Cotton
                   jay.cotton@Eng.SUN.Com
                     Sun Microsystems

                        23 July 1999





































Copyright c Sun Microsystems, 1999

Permission to use, copy, modify, distribute, and  sell  this
documentation for any purpose is hereby granted without fee,
provided that the above copyright notice and this permission
notice  appear  in  all  copies.  Sun  Microsystems makes no
representations about the suitability for any purpose of the
information  in  this  document.  This documentation is pro-
vided ``as is'' without express or implied warranty.

























































1.  Overview

This extension provides X Protocol control  over  the  Frame
Buffer  Power  Management  (FBPM) characteristics of Excali-
berFp
 class video boards under control of the X Window System.

Traditionally, the X Window System  has  provided  for  both
blanking  and  non-blanking screen savers.  Timeouts associ-
ated with these built-in screen saver mechanisms are limited
to  idle  (dwell)  time, and a change timeout that specifies
the change interval for non-blanking screen savers.

The United States'  Environmental  Protection  Agency  (EPA)
Energy  Star program requires that monitors power down after
some idle time by default.  However in the case of Excaliber
and  follow  on products, power management has been extended
to include other parts  of  the  computer.   For  the  Frame
Buffer,  Excaliber  can  remove  power from the frame buffer
under program control.

There are four power levels specified by the Video Electron-
ics  Standards  Association  (VESA) Display Power Management
Signaling (DPMS) standard.  These are mapped onto the X FBPM
Extension like this:

  0            FBPMModeOn          In                    use
  1            FBPMModeStandby     In      standby     mode.
  2            FBPMModeSuspend     In     suspend      mode.
  3            FBPMModeOff         Shut     off,    awaiting
activity


2.  FBPM Functions



Bool FBPMQueryExtension (display, event_base, error_base)

         Display *display;
         int *event_base, *error_base;

display Specifies the connection to the X server.
event_base      Specifies  the  return  location   for   the
assigned base event
error_base      Specifies  the  return  location   for   the
assigned base error


The FBPMQueryExtension function  queries  the  X  server  to
determine  the  availability  of the FBPM Extension.  If the
_________________________
1. X Window System is a trademark of X Consortium, Inc.




                             1





Frame Buffer Power Management (FBPM) Extension


extension is  available,  the  return  value  is  TRUE,  and
event_base  and  error_base are set to the base event number
and base error number for the extension, respectively.  Oth-
erwise,  the  return  value  is  FALSE,  and  the  values of
event_base and error_base are undefined.




Status FBPMGetVersion(display, major_version, minor_version)

         Display *display;
         int     *major_version, *minor_version;

display         Specifies the connection to the X server.
major_version   Specifies the return location for the exten-
sion major version.
minor_version   Specifies the return location for the exten-
sion minor version.


The FBPMGetVersion function returns the version of the  FBPM
extension  implemented  by  the  X  server.   The version is
returned in major_version and minor_version.  The major ver-
sion  and  minor  version for this specification are '1' and
'1', respectively.  The major version  will  be  incremented
for  protocol  incompatible  changes,  and the minor version
will be incremented for small, upwardly compatible changes.




Bool FBPMCapable(display)

         Display *display;

display Specifies the connection to the X server.


The FBPMCapable function returns the FBPM capability of  the
X  server, either TRUE (capable of FBPM) or FALSE (incapable
of FBPM).  The capability of an X server  is  implementation
defined.   For example, if a multi-headed  X server is capa-
ble of FBPM on one head, and incapable on another, the truth
value  of this function is defined by the X server implemen-
tation.





Bool FBPMEnable(display)

         Display *display;



                             2





Frame Buffer Power Management (FBPM) Extension


display Specifies the connection to the X server.


The  FBPMEnable  function  enables  FBPM  on  the  specified
display. When enabled, power off assertion occures when DPMS
transitions from Suspend->Off.  Power up occures  when  DPMS
Transitions to On from any state.




Bool FBPMForceLevel(display,level)

         Display *display;
         int  level;

display Specifies  the   connection   to   the   X   server.
level   Power level to force the frame buffer into.

The FBPMForceLevel function puts the frame buffer  into  the
requested  level, regardless of the DPMS power state.  Note,
the level will revert to track DPMS at the next  DPMS  power
state transition.

See table below for values of level.

FBPMModeOn     Force      frame      buffer      to      on.
FBPMModeStandby          Force   frame  buffer  to  standby.
FBPMModeSuspend          Force  frame  buffer  to   suspend.
FBPMModeOff    Force frame buffer to off.






Status FBPMDisable(display)

         Display *display;

display Specifies the connection to the X server.


The FBPMDisable function  disables  FBPM  on  the  specified
display.  When disabled, no power states are asserted on the
frame buffer.





Status FBPMInfo(display, state)

         Display *display;



                             3





Frame Buffer Power Management (FBPM) Extension


         BOOL *state;

display         Specifies the connection to the X server.
state                   Specifies the current FBPM state


The FBPMInfo function returns information about the  current
FBPM state.  The state return parameter indicates whether or
not FBPM is enabled (TRUE) or disabled (FALSE).
















































                             4


