Jump to content

ATI AC 97 Sounds (SB400) effort


Andras Kenez
 Share

696 posts in this topic

Recommended Posts

My sound card has a device id of 4341 and vendor id of 1002, it shows up as realtek ac 97 audio in dxdiag. Is this is the device this driver is supposed to be for? Or else how can i get this working in 10.4.6?? Also is there any support for Atheros AR5005GS Wireless Adapter or Realtek RTL8139/810x under 10.4.6 I would really like to get these working. I know this is a little off topic but any help would be appreciated.

 

Thanks

:D

Link to comment
Share on other sites

Ya I realize this driver isnt finished yet...but i was wondering if this would or should work when its finished or should I be looking for something else that is already out there for my card? Thanks for your response

Link to comment
Share on other sites

For Atheros use IO80211Family.kext from 10.4.5, works like a charm.

 

Tariq

 

Is there a special way to do this when i try to do a kextload it doesnt seem to work...im a lil bit of a n00b with this so please help i was able to extract the kext from the 10.4.5 package thou.

Link to comment
Share on other sites

Okay. It is good to hear someone is trying to do something.. :(

I understand. :)

For progress, I think I'm reasonably certain what's wrong: I don't think Mac OS X is triggering the interrupt handler. Like I posted earlier (before I got confused, hehe), I'm sure the hardware needs an interrupt in order to advance the hardware pointer and finish the sample - this is the function of the "ack" in the interrupt handler. If the handler doesn't fire, the ack doesn't get sent, and it simply hangs in an "indeterminate" state - the DMA is still "running", but nothing's happening because it's waiting for the interrupt to be serviced. The software then tries to shoot the next sample to the DMA, but it's flagged as still running, so the software kicks the bucket and returns to the user. End result: Infinite loop.

 

If someone who knows more about Mac OS interrupt handling than I do would care to look at the code and see where the handler has gone so wrong, I'm reasonably certain we'll get sound working. :)

Link to comment
Share on other sites

the two files are extensions.mkext and extensions.kextcache. also the commands are chown and to use that command you have to type sudo chown -R root:wheel /system/Library/Extensions/filename.kext

 

I did that but i keep getting the message that

 

Missing dependencies

 

com.apple.iokit.IONetworkingFamily

No Valid versions of this dependency can be found

 

I even took the IONetworking.kext from 10.4.5 hoping that would help but it didnt.

 

I know this is wayyy :angel: but this is the only place i can seem to find good help

 

Thanks

Link to comment
Share on other sites

we're kinda already doing it. mac os x's version of ALSA is the AC97 framework.

 

so we've been working on getting the code from ALSA to work with AC97, the problem is that ALSA is in C while the AC97 framework is in OOP C++, hence our problem. We missed something when translating the code, but what we missed is not so obvious.

Link to comment
Share on other sites

Ed, I've tried a coupla dozen things I thought would fix it, and nothing worked. I'm thinking when I get some more time in OS X, I'm going to try a major rewrite of the interrupt-handling and DMA code - basically reorganizing everything so that I can understand the code flow and see where everything leads.

Link to comment
Share on other sites

Okay, so I scrapped the reorganization 'cuz I spotted a couple of what looked for all the world like bugs to me... That, and it was time-consuming and I need to design things out more before taking the plunge. But anyway, Ed, I noticed in your hwActivateConfiguration() function, you never activated the DMA... The statement read

if (data & ATI_REG_CMD_OUT_DMA_EN)
{
data |= ATI_REG_CMD_OUT_DMA_EN;
fMemBase->write32(ATI_REG_CMD, data);
}

I think the correct reading of the if statement should be

if (!(data & ATI_REG_CMD_OUT_DMA_EN))

but I could be wrong. In any event, I patched that, and now I get a kernel panic. :withstupid: If I was wrong about that fix, let me know; otherwise, here's the modified file, maybe you could play around with it and see if you can figure out why the system locks up. I can't figure out how to debug it.

AppleAC97AudioATIIXP.cpp.txt

Link to comment
Share on other sites

Okay, so I scrapped the reorganization 'cuz I spotted a couple of what looked for all the world like bugs to me... That, and it was time-consuming and I need to design things out more before taking the plunge. But anyway, Ed, I noticed in your hwActivateConfiguration() function, you never activated the DMA... The statement read

if (data & ATI_REG_CMD_OUT_DMA_EN)
{
data |= ATI_REG_CMD_OUT_DMA_EN;
fMemBase->write32(ATI_REG_CMD, data);
}

I think the correct reading of the if statement should be

if (!(data & ATI_REG_CMD_OUT_DMA_EN))

but I could be wrong. In any event, I patched that, and now I get a kernel panic. <_< If I was wrong about that fix, let me know; otherwise, here's the modified file, maybe you could play around with it and see if you can figure out why the system locks up. I can't figure out how to debug it.

 

I tried that fixed file and osx started, but if i tried to listen music or any audio and whole osx crashed ( everything freezed )

 

i think that there is only little bug/bugs becouse now i saw Audio output device on Audio config.

i have osx version 10.4.6

 

keep up good work! :construction:

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...