Jump to content

ATI AC 97 Sounds (SB400) effort


Andras Kenez
 Share

696 posts in this topic

Recommended Posts

Dope, I have commented this:

 

 

// if (config->getDMAEngineID() != ATI_DMA_CAPTURE)

// busySlots |= config->getSlotMap();

return true;

}

 

void CLASS::hwDeactivateConfiguration(IOAC97AudioConfig *config)

 

 

 

and added this:

 

 

// Flush

regs->write(ATI_REG_FIFO_FLUSH, ATI_REG_FIFO_OUT_FLUSH);

// Check for DMA enable, enable if not

data = regs->read(ATI_REG_CMD);

if (!(data & ATI_REG_CMD_OUT_DMA_EN))

 

in method bool CLASS::hwActivateConfiguration(IOAC97AudioConfig *config).

 

Now on my system codec attach problem is resolved and latency issue is almost gone (probably 1-2 sec's this I doubt is caused bu debug statements)

 

 

Tariq

Link to comment
Share on other sites

done and done here is compiled Kext and sources.

ATIAudio.zip

 

 

Did not work

 

kld(): Undefined symbols:

__ZN20AppleAC97AudioATIIXP19handleSetPowerStateEPvS0_

kextload: kld_load_from_memory() failed for module /System/Library/Extensions/AppleAC97Audio.kext/Contents/PlugIns/AppleAC97AudioATIIXP.kext/Contents/MacOS/AppleAC97AudioATIIXP

kextload: a link/load error occured for kernel extension AppleAC97AudioATIIXP.kext

load failed for extension AppleAC97AudioATIIXP.kext

(run kextload with -t for diagnostic output)

Link to comment
Share on other sites

I'll go back and remove the power-saving for those who don't want it later today. Tariq: Good work, I'll try that later. I thought that stuff was necessary for 6-channel support, but I don't know, I'm still new to the whole OS X driver architecture and most of this code was copied from Ed and scousi's work, so I don't know what's necessary and what isn't. As for the kernel panic problem, no, that issue has NOT been resolved, I promise you I am still working on it and that it is priority #1 on this project right now. Any ideas would be welcome.

Link to comment
Share on other sites

I installed the kext from chris2021 and dopefish and neither work I have a compaq laptop with a conexant card any help would be much appreciated...and just to put this out there I have been following this project since the beginning I even have a post on the first page and I would like to say thankyou and congraulation to scousi edflyer and thedopefishlives for all their hardwork because between work and my personal life I barely have enough time to keep my os x installation up to date little long develop a sound card driver so I guess this a thank you...

Link to comment
Share on other sites

I got a chance to try out the driver last night. It fires up and I get the volume control, but I don't get any sound. I guess it's the same line-out problem that EdFlyer has. For the record, I have the MSI 1013 laptop, sound PCI ID is 4370. I plugged headphones into both mic and headphone jacks, but still nothing.

 

Thanks for the great work, let me know if I can provide any more info to help.

Link to comment
Share on other sites

This is what I get when I try to load kext with diagnostics.

 

Can't find superclass for 20AppleAC97AudioDriver : 13IOAudioDevice

kextload: a link/load error occured for kernel extension appleac97audioatiixp.kext

load failed for extension appleac97audioatiixp.kext

(run kextload with -t for diagnostic output)

trishas-computer:/Users/trisha/desktop/atiaudio root# kextload -t appleac97audioatiixp.kext

can't add kernel extension appleac97audioatiixp.kext (validation error) (run kextload on this kext with -t for diagnostic output)

kernel extension appleac97audioatiixp.kext has problems:

Validation failures

{

"Kext has a kernel dependency prior to version 6.0 and CFBundleVersion does not match executable's MODULE_VERSION" = true

"Kext has a kernel dependency prior to version 6.0 and CFBundleIdentifier does not match executable's MODULE_NAME" = true

}

Link to comment
Share on other sites

Brandon, what version of OS X are you running?

 

alkoholic, that is indeed a known issue that I have no solution for at present. If I find something amiss, I'll let you know, but Ed will probably be the first to figure that out.

 

I'm currently testing a new build that *may* fix the system lockup problem. I've been running an MP3 stream for 25 minutes now with no problems; if it finishes the full hour, I'll post the new revision.

 

EDIT: Oh, and I'll release it in 2 versions, one with the power-saving code enabled, and one without.

Link to comment
Share on other sites

Minor Request: when posting a kext or source, add a version string? Even if the strings make no logical sense, there are quite a few builds floating around at the moment. Tracking problems across page 14 #3 and page 15 #1 is going to suck.

Link to comment
Share on other sites

I'll tag this next release, thanks.

 

This is what I call "build 1.0.1". I think it should fix the kernel panic problem, I did a long burn-in test on it. I'm unsure as to the status of the following items:

1) 6-channel support. I reread the Linux driver code, and I *think* I understand it, but I also think this driver does that. I'm not sure.

2) Codec attachment problem reported by Tariq. I don't know exactly what could've caused that. Test this build to find out.

3) Power saving. As promised, I'm delivering a version with power saving enabled, and a version without. For those who use the with-power-saving version, make sure it works well for you without too much of a delay.

ATIAppleAC97Audio_1.0.1_withoutpowersaving.tar.bz2.zip

ATIAppleAC97Audio_1.0.1_withpowersaving.tar.bz2.zip

Link to comment
Share on other sites

dopefish now I have that Error I stated eariler about the invalid version, I don't know what fixed it last time it kinda just started working any help will be greatly appreciated

 

oh...and I am not sure what my device id is I know my card is conexant in windows but I am only running os x is there a way for me to know for sure my device id?

Link to comment
Share on other sites

My codec problem is solved, but latency issue is back ;-(... I hope kernel issue is fixed

 

Tariq

 

Forgot to tell you that I always get link/load errors with your kext's (I use 10.4.6 JAS DVD)... I compile using ED's package and your ATI source code.

Link to comment
Share on other sites

Odd, especially considering that's exactly what my package is. *shrugs* Post up your version, and all I'll start doing from now on is posting the folder containing the changed source code for you to build into a kext. I have no idea what's so different between us, except perhaps that I used a hand-rolled Maxxuss 10.4.5 DVD with SemJaza's 10.4.6 update added later.

Link to comment
Share on other sites

Heh, sounds like an incompatibility between my build environment and all y'all's :) Sorry about that, folks.

 

About the latency issue: Tariq, I modified that function where you added the flush and I have no idea where you put it. I'll try to add it back in, but I don't know where, can you give me a line number where you added it?

Link to comment
Share on other sites

It was not flush, but after flush in method ... bool CLASS::hwActivateConfiguration(IOAC97AudioConfig *config)

 

here is a vim cut&paste (line number at the end)

 

// Enable 6 channel re-ordering bit if needed

regs->update(ATI_REG_6CH_REORDER, ATI_REG_6CH_REORDER_EN,

(config->getAudioChannelCount() >= 6 ? ATI_REG_6CH_REORDER_EN : 0));

// Flush

regs->write(ATI_REG_FIFO_FLUSH, ATI_REG_FIFO_OUT_FLUSH);

// Check for DMA enable, enable if not

data = regs->read(ATI_REG_CMD);

if (!(data & ATI_REG_CMD_OUT_DMA_EN))

{

data |= ATI_REG_CMD_OUT_DMA_EN;

regs->write(ATI_REG_CMD, data);

}

break;

 

case ATI_DMA_SPDIF:

break;

}

// if (config->getDMAEngineID() != ATI_DMA_CAPTURE)

// busySlots |= config->getSlotMap();

return true;

}

361,13-20 29%

 

This is the old file you notice I have disabled busySlots| (I also remove case ATI_DMA_SPDIF: stuff , just for testing but the should not have any effect on us mortals ... with 2 speakers ;-) )

 

Regarding building kext, I used old package by Ed Flyers (3rd page I guess ) .. and only added your file in ATIIXP directory. Hope that helps ...

Link to comment
Share on other sites

I'm uploading zips of just the ATIIXP directory for both with and without power saving, if you can compile them for me, please. :) This definitely fixes the latency issue: It was a problem with the startDMAEngine() function. So then, unresolved issues:

* 6-channel audio

* Some chipsets do not have sound

* Why my build system sucks

AppleAC97AudioATIIXP_1.0.2_withoutpowersaving.zip

AppleAC97AudioATIIXP_1.0.2_withpowersaving.zip

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...