Jump to content

Welcome to the SigmaTel 9200 Driver Initiative!


james2mart
 Share

359 posts in this topic

Recommended Posts

Hey guys!

 

Anyone out there with a SigmaTel 9200 codec in their computer need a driver for it? ---- Everyone.

 

This is a project that I will be working on over the summer, so like all other driver developers, I will be very busy... Your support and :D are welcome here, so you may post as you please. If you happen to have your hands on a datasheet for the Sigmatel 9200, feel free to post that as well!

 

Enjoy!

 

(no goodies yet, so don't bother asking) :)

Link to comment
Share on other sites

Hey guys!

 

Just wanted to update you all on the status of my driver writing.... er... porting.

 

So far, it has been pretty easy to simply port the code over from FreeBSD, and its really cool because its not very long. I'm working on initializing the codec and allocating the space for the DMA buffer, which is quite difficult because thats where BSD and Darwin/IOKit differ the most.

 

Since I'm porting this driver from BSD, all im doing is copying and pasting stuff and then changing everything to darwin code, and then compiling to see if it builds without error. of course, this is risky, but in theory as long as I make sure i put the init() code in the right spot, and all the other code in the correct spot in the samplePCIaudioDriver example code, this thing should flow pretty smoothly.

 

Later!

Link to comment
Share on other sites

Please get some drivers soon, because i was going to by an apple but it is to much so i told myself i won't buy anything until i get sound on this box

a little pushy aren't we?

why not thank the man for his time and efforts. :D

Link to comment
Share on other sites

so right now i have gotten the codec pretty much initialized, and the widgets powered. now, i have to initialize the mixer... porting these functions and creating new functions has been somewhat easy so far. Once I am done with the initialization of the codec, i will then need to proceed to the streaming of audio, which is (likely) far more difficult. No promises, but i should have something up for yall to see pretty soon, just no telling when.

 

Here are my :( for today:

 

According to the Sigmatel 9200 Datasheet that I have, people with device ID 7690 are using a STAC9200. everywhere else, it is referenced as a 9220, but i just found it very interesting that 2 different model numbers have the same devID. I double and triple checked. I think it is very odd.

 

Since i'm having some form of success with this, my next project might be an intel 3945abg driver..... :gun:

Link to comment
Share on other sites

On windows vista i got this output from my Sigmatel 9200:

HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_27D8&VEN_8384&DEV_7690&REV_1022

 

It's interesting that in Vista, they only use generic High Definition Audio drivers, they're not specific of the Sigmatel card. When I was doing experiments with kext editing to the AppleHDA.kext it could detect the card, but i think the layout of the outputs/inputs was messed up. Because I could mess around with the volume control, the system sounds and all those things, but I didn't get sound at all, not from the integrated speakers and not from the line out and microphone.

 

I hope your driver initiative will have results. When I have some spare time I gonna install OSX86 on my Dell 6400 again to mess around a little and see if I can help with something :D

 

Later! :D

Link to comment
Share on other sites

If someone with c++ knowledge could take a look at this, it would be great. this is one of the first bumps that I've hit and it has nothing to do with the IOKit, just general c++ stuff. The compiler gives an error like "expected primary-expression before '.' token" someone please give some tips! You may need to look at the bsd audioio.h file and the bsd azalia.c, azalia.h, and azalia_codec.c files to get an idea of what the macros like AZ_MIXER_CLASSES do. heres the link of my problems:

 

http://www.computer-connexions.com/problems.rtf

Link to comment
Share on other sites

ok, i figured out where my problem is. Thanks if you tried. The driver from BSD is in c, and while some of the features carry over from c to c++, others dont. One example is the initialization of submembers of unions and typedefined structures. no such luck. If you are a coder, or know anything about C or C++, you can help out in the assistance thread that I'm about to start.

Link to comment
Share on other sites

Update.

 

Now that I have the codec initialized, I'm working on learning the interfaces for the Intel HDA specification. This is completely different than the BSD driver because I have to implement the streams from the Azalia Link to the codec. The ICH6/7 simply controls the link and the streams. I have to figure out what to send to the ICH and where to send it, along with what data to packet along with it. :-\ This is not going to be easy, and a whole lot more difficult than I expected. I may not post another update for a few days, but thats because all I will be doing is reading the documentation: Apple's, Intel's, and SigmaTel's. Lots o' fun. I had to do a good bit of reading to interpret the BSD code for initialization of the codec in the first place, and now I have to do more reading so that I can write my OWN code instead of porting someone else's. Yay.

Link to comment
Share on other sites

I had to do a good bit of reading to interpret the BSD code for initialization of the codec in the first place, and now I have to do more reading so that I can write my OWN code instead of porting someone else's. Yay.

 

:D Dude, if you get this working you will become quite famous on this boards and you'll learn lots of new stuff, making it easier to code something in the future.. :D

 

You're doing a great job, take the time you need. It will be worth every effort, I'm sure!

Link to comment
Share on other sites

Unfortunately, when I was working in terminal, I accidentally rm -R'ed my entire source code directory. One file was open, which was the largest, but I still lost alot of code.

 

Fortunately, I needed to rewrite it anyway because it didn't work correctly.

 

Just another bump in the road.

Link to comment
Share on other sites

Unfortunately, when I was working in terminal, I accidentally rm -R'ed my entire source code directory. One file was open, which was the largest, but I still lost alot of code.

 

Fortunately, I needed to rewrite it anyway because it didn't work correctly.

 

Just another bump in the road.

 

Argh, that sucks.. but I guess you're making some progress as you know it wouldn't work correctly before..

 

Good luck!

Link to comment
Share on other sites

I would like to help too but my coding skills are limited to data structures only lol (2nd year of information engineering, and the first year we only took maths/physics)..

 

I'll still take a look to the BSD driver and see if I can do something, I don't like giving only words of support, I actually wanna help to this project.

 

Good luck, I really appreciate your efforts :whistle:

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...