XFree86 provides a facility for setting the clock frequency on a graphics card by an external program. This is provided to make it possible to deal with cards that use clock selection methods not supported by the standard drivers.
This facility is enabled by adding a ClockProg
line to the
Device
section of the XF86Config
file.
The format of this line is:
ClockProg "
commandpath"
where commandpath is the full pathname of the clock setting
program. No flags are allowed in commandpath.
When using this option, and no Clocks
line is specified, it is
assumed that the card has clocks which are fully programmable (like the
SS24). However if the card has a fixed set of preset clocks a Clocks
line is required in the Device section of the XF86Config
file
to tell the server which clock frequencies are available to it. The
ordering of the clocks in the Clocks
line should correspond to
what the card/program expects. Up to 128 clock values may be specified.
The server calls the external program when it needs to change the clock frequency. This occurs at startup and when switching modes with the hot-key sequences. The command is passed two command-line arguments. The first is the clock frequency in MHz (as a floating point number -- currently specified to the nearest 0.1 MHz). The second argument is the index of the clock value in the Clocks list (the first clock is index 0). Cards with a fixed set of clocks would probably make use of the index, while cards with a fully programmable clock would use the frequency argument.