Trident driver

Joel Dice joel.dice@colorado.edu
Sat, 10 Jan 2004 11:10:55 -0700 (MST)


Hello all.  The following questions are mainly for Keith Packard, since he
is the original author, but if anyone else has any tips, I'd appreciate
them.

I've spent a bit of time lately trying to get the Trident driver up to
date, but I'm not sure what to do next.  It now compiles nicely, but when
I run the server it quickly exits with the following message:

Fatal server error:
Trident COP not visible

I should note that I had to change the InitCard(char*) function in
tridentstub.c to find my card (PCI device 0x10238500 instead of
0x10239525).  I have a CyberBlade/i1 (rev 6a).  It occurred to me that
such a simple change will not work if the rest of the code is written
specifically for a different device (the one identified by 0x10239525).
Is this the case, or should the driver work for any Trident card?

Either way, I'm not sure how to proceed.  My main question is this: How
does one write or modify a video driver without documentation?  So far
I've considered three possibilities:

Reverse-engineer a Windows driver.
	If this is the proper way to do it, I give up now.

Study the relevant Xfree86 DDX.
	This is what I've been doing, but I'm having a hard time mapping
	the DDX system to the KDrive system.  Maybe I just need to spend
	more time on it.

Beg the manufacturer to provide documentation, probably under a NDA.
	Fine with me, if it's likely to succeed.  But will I still be
	allowed to write/modify an open-source driver with that
	information?

So, how is it done?  I wrote some simple device drivers in college, but
then we had documentation.  Now I'm lost.  Any tips would be most
appreciated.

 - Joel