Tridentfb is a framebuffer driver for some Trident chip based cards.

The following list of chips is thought to be supported although not all are
tested:

those from the TGUI series 9440/96XX and with Cyber in their names
those from the Image series and with Cyber in their names
those with Blade in their names (Blade3D,CyberBlade...)
the newer CyberBladeXP family

All families are accelerated. Only PCI/AGP based cards are supported,
none of the older Tridents.
The driver supports 8, 16 and 32 bits per pixel depths.
The TGUI family requires a line length to be power of 2 if acceleration
is enabled. This means that range of possible resolutions and bpp is
limited comparing to the range if acceleration is disabled (see list
of parameters below).

Known bugs:
1. The driver randomly locks up on 3DImage975 chip with acceleration
   enabled. The same happens in X11 (Xorg).
2. The ramdac speeds require some more fine tuning. It is possible to
   switch resolution which the chip does not support at some depths for
   older chips.

How to use it?
==============

When booting you can pass the video parameter.
video=tridentfb

The parameters for tridentfb are concatenated with a ':' as in this example.

video=tridentfb:800x600-16@75,noaccel

The second level parameters that tridentfb understands are:

noaccel - turns off acceleration (when it doesn't work for your card)

fp	- use flat panel related stuff
crt 	- assume monitor is present instead of fp

center 	- for flat panels and resolutions smaller than native size center the
	  image, otherwise use
stretch

memsize - integer value in KB, use if your card's memory size is misdetected.
	  look at the driver output to see what it says when initializing.

memdiff - integer value in KB, should be nonzero if your card reports
	  more memory than it actually has. For instance mine is 192K less than
	  detection says in all three BIOS selectable situations 2M, 4M, 8M.
	  Only use if your video memory is taken from main memory hence of
	  configurable size. Otherwise use memsize.
	  If in some modes which barely fit the memory you see garbage
	  at the bottom this might help by not letting change to that mode
	  anymore.

nativex - the width in pixels of the flat panel.If you know it (usually 1024
	  800 or 1280) and it is not what the driver seems to detect use it.

bpp	- bits per pixel (8,16 or 32)
mode	- a mode name like 800x600-8@75 as described in
	  Documentation/fb/modedb.txt

Using insane values for the above parameters will probably result in driver
misbehaviour so take care(for instance memsize=12345678 or memdiff=23784 or
nativex=93)

Contact: jani@astechnix.ro
