The ``cl64xx'' Driver

Information for Cirrus Chipset Users : The ``cl64xx'' Driver
Previous: Linear addressing and 16bpp/24bpp/32bpp modes
Next: Trouble shooting with the ``cirrus'' driver

## 6. The ``cl64xx'' Driver

The cl64xx driver supports the cl-gd6440 found in many laptops. For example, Nan Tan Computer's NP9200, NP3600, etc., which are OEM-ed by Sager, ProStar, etc. and Texas Instruments TI4000 series are supported.

The driver works in LCD-only, CRT-only, and the chip's SimulScan mode which allows one to use both the LCD and external CRT displays simultaneously. The LCD and Simulscan modes' resolution is 640x480 while, for CRT-only, the standard VESA modes of 640x480, 600x800, and 1024x768 have been tested. Interlaced 1024x768 mode has never been debugged and does not work on the machines tested.

The chip has a documented maximum operating limit for its dot clock that is related to its core voltage. Specifically, for 5.0V the maximum dot clock is 65MHz and for 3.3V the maximum dot clock is 40MHz. The driver checks the core voltage and limits the maximum dot clock to the corresponding value. This translates to a maximum resolution of about 1024x768 at a 60Hz refresh rate. The internal frequency generator can be programmed higher than these limits and is done so during server startup when the clocks are probed which momentarily exceeding the chip's operating limit. Once a set of valid clocks is obtained, I would recommend using Clocks lines in `XF86Config`. Doing so will also decrease startup time significantly. The clocks may be obtained by running the X server -probeonly (see the XFree86 man page for more information about -probeonly).

The data book indicates that only a configuration of one megabyte of video memory is supported by the chip. This size has been directly set in the driver. If one finds a need, one should be able to override the default size in `XF86Config`. Also, with 1MB of video memory, one should be able to have a virtual screen size of e.g. 1024x1024 and this is possible in CRT-only screen mode. However, whenever the LCD is in use (LCD and SimulScan), the chip uses a portion of upper video ram for its own internal acceleration purposes. Thus, the maximum video memory available for virtual resolution in LCD modes is about 0.75MB e.g. 1024x768. If you set the virtual resolution above this, you will see what might be described as a compressed aliased band when the accelerated area is displayed.

Currently, the driver does not support switching of screen modes among LCD, CRT, and SimulScan, and, at least on the NP9200, the mode must be chosen at OS boot time (e.g. Linux's LILO) while the BIOS is still active. It should be possible to add screen mode type selection as a ModeLine flag option in `XF86Config` to allow for dynamic screen mode selection from within the X server. Finally, the driver does not currently support any of the powerdown saving features of the chip nor does it shut off the LCD's backlight on screen blank. I hope to implement all these features in future releases.

Some notes regarding the CL-GD6420:

The amount of video memory may not always be detected correctly. The driver source code includes two methods, one defined out. Better specify the amount of video memory with a VideoRam line in the Device section. Use the standard 640x480 60 Hz standard mode timing with 25.175 MHz dot clock for CRT or SIMulscan mode; for LCD-only operation, use the same mode timing but with a dot clock of 16.257 MHz. Standard 56 Hz 800x600 is also supported on the CRT.

The primary contact for the cl6440 problems with ``cl64xx'' driver is Randy Hendry <randy@sgi.com>.

Information for Cirrus Chipset Users : The ``cl64xx'' Driver
Previous: Linear addressing and 16bpp/24bpp/32bpp modes
Next: Trouble shooting with the ``cirrus'' driver