Newbie questions about driver programming and s3 968 docs.

Martijn Uffing mp3project at sarijopen.student.utwente.nl
Thu Mar 9 14:21:27 PST 2006


On Thu, 9 Mar 2006, Luc Verhaegen wrote:

> On Thu, Mar 09, 2006 at 09:35:05PM +0100, Martijn Uffing wrote:
> > Ave people
> > 
> > 
> > I've got a Diamond Stealth 64 VRAM card with a s3 968 graphics chip and a 
> > TI Viewpoint 3026 Ramdac. This card doesn't work in Xorg because there's 
> > support for the s3 968, there's support for the TI 3026 Ramdac, but 
> > there's no support for the combination ....... yet. This is an old 
> > card so the chance that somebody will fix it is very small. Therefore in 
> > the open source spirit, I'll give it a try myself :)
> > 
> 
> Smashing. Another person who's willing to do this kind of work.
After using open source for quite a time, it's time to give something 
back :)

 
> > However since I didn't even know what a ramdac was a week ago, I've got 
> > some newbie questions.
> > 
> > 
> > 1)The 3026 ramdac is supported in the mga driver. The s3 968 is supported 
> > in the s3 driver, but with a 3025 ramdac.
> > 
> > Does it matter for graphic chip programming which ramdac is connected? In 
> > other words: If I can get the 3026 working, will the 968/3026 combo just 
> > work(TM). Or do I also have to make changes in the s3 driver, beyond 
> > letting the s3 driver also probing for a 3026 ramdac and setting the 
> > pS3->DacPreInit/pS3->DacInit etc etc functions?
> > 
> > 
> > 2)The 3026 ramdac is supported in the mga driver. However there's also a 
> > generic ramdac module which has support for the 3026. Which one is the 
> > best to look at for guidance?
> > At this moment, I'm trying to duplicate the S3TiDAC(which are for the 
> > 3025) functions with S3TiDac_3026 equivalents.
> > 

> Don't. Adapt 3025 in the s3 driver to 3026. Might boil down to just an ID
> byte.
That was my initial thought also. Just an id byte, however I compared the 
3025 and 3026 docs and the've got a different register layout, different 
formulas for N,M,P dot clock programming. Still the 3026 
looks a lot like the 3025. So for now, I'm at least cloning the DacProbe 
funtion.


> 
> Don't go for modules for the ramdacs. The ramdacs themselves are trivial,
> and there is little point in modularisation.
I will implement the 3026 in the s3 driver files.

 
> ramdacs are very very simple devices. The only trouble is getting to talk
> to them. That involves things like setting the clock register in a
> peculiar way, and or poking DAC_READ/WRITE/MASK addressen in a specific
> fashion. This is all pretty much black magic that is both ramdac and
> chip specific.
> 
> You have 3025, you're probably already able to talk to a 3026. Test this.
> If this works, you're pretty much done already. :)

> 
> > 3)I've got docs for the 3025/3026. (kuddos to Texas Instruments for 
> > keeping docs online for long obsolete products!). I couldn't find docs 
> > for the s3 968. Of course I can look into the source of the XFree3/Xorg4 
> > drivers, and just copy paste some stuff.  But I would rather now WHAT the 
> > driver is doing by poking some registers. Especially how to reach the
> > direct registers of the ramdac. 
> > 
> > Example:
> > The s3 driver is doing stuff like
> > outb(vgaCRIndex, 0x43);
> > However I can't find the meaning of what's to be found at that  indirect 
> > register 0x43 at http://www.osdever.net/FreeVGA/vga/crtcreg.htm
> > 
> > Is this register typical for the s3?
> Yes.
One mistery solved. 

> 
> > Or is there a better vga reference on the net where I can find the meaning
> > for those registers? Are the s3 968 docs somewhere on the net? 
> 
> http://thorkildsen.no/faqsys/docs/s3.txt
BINGO! More mysteries solved!
The 3026 doc was not hard to read. However to acces registers you have to 
manipulate RS0-RS$ pins. They're mentioned in that doc!
And more bit poking code makes sense to me now.


 
> > 4) IF and only IF I can get it working.
> It seems that you have _all_ information you could ever wish for. All it takes
> is getting your head around all of this and pushing on.
Step by step: First step the probing :)


> > Should I sent patches to the list or make a bugzilla entry with 
> > attachments?
>  
> Bugzilla, open a bug right away and assign it to yourself. I'll add myself
> asap, so that i can answer whatever questions you might have.

> 
> > 
> > Greetz Mu
> > 
> > P.S: I had a lot of respect for people who made drivers for hardware with 
> > no docs and no source by reverse engineering.  Now that I'm trying to fix 
> > a driver for which most work is done, docs available and a working 
> > open source example (XFree3) is also available, my respect for them has 
> > grown to humongous proportions!
> 
> You're doing a very noble thing. Hang in there, and ask all questions you
> have. Even if the answer make it straightforward afterwards, you can waste
> ages on "stupid" things with modesetting.
> 
> Luc Verhaegen.
> 
Well alll help helps :) And the pointer to the s3 doc  was for now the 
last peace of info I needed. So time for some coding now.






More information about the xorg mailing list