Jump to content
Welcome to InsanelyMac Forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
james2mart

Welcome to the SigmaTel 9200 Driver Initiative!

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) :)

Share this post


Link to post
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!

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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:

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Great. I just bought a laptop and guess which soundcard it uses! However, I'll be interested in testing the driver :( No need to rush anything though. I'm sure you will help lots of people out when it's finished. Good luck!

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

I'm starting this thread so I can ask for help here, instead of the Status thread. If I have a question, you can check it out and see if you can help. No questions as of now :D

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

Another available tester right here. I really appreciate all the work you're putting into this!

Share this post


Link to post
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!

Share this post


Link to post
Share on other sites

I'm a beta tester if you need one :D

 

When you find it you will be a God among the 9200 guys, it gets boring having to boot back into windows just to get sound :)

 

Thanks

Share this post


Link to post
Share on other sites

I have a Dell Inspiron 6400 with Sigmatel 9200...My only problems with OSX are secure wireless connections and this sound card..I'm here to test whenever. Thanks again for doing this...

Share this post


Link to post
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.

Share this post


Link to post
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!

Share this post


Link to post
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:

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.



×