Using an external clock setting program

Information for using/developing external clock setting programs : Using an external clock setting program
Previous: Information for using/developing external clock setting programs
Next: Developing an extern clock setting program

## 1. Using an external clock setting program

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.

Information for using/developing external clock setting programs : Using an external clock setting program
Previous: Information for using/developing external clock setting programs
Next: Developing an extern clock setting program