Hi Jonathan,
On Friday 01 September 2006 15:02, you wrote:
I am catching up on some LB threads in my Inbox, and found this one. I don't have anything technical to contribute, but am definitely interested in your progress! To have Kahlua audio without VSA would be fantastic!
Good luck, and keep us updated on your progress.
Thanks, here it comes.
Its state is: "it works for me". I can play sounds and MP3s with it.
It was easier to poll the SMI status bits than to forward an SMI to a regular IRQ. So I divide my driver into two parts: One for SMI polling, and one for kahlua sound. The sound drivers registers itself by the SMI handler, to get called whenever an SMI related to the sound chip occures. That does not work very well under heavy load! But: On a 233MHz Geode with VSA BIOS playing network radio the system has 50% to 60% load (Sound Blaster Emulation with 2.4.x kernel). On my 300Mhz Geode with LinuxBios and my native sound driver playing an MP3 has a load of 3% to 5%.
Some problems are still unresolved: - very short sounds do not stop at the end. The stop command from the ALSA framework is always to late, so a little piece of the last period will be repeated like an echo (due to ring buffering) - I'm not sure if the AC97 codec programming interface works correctly. Sometimes the ALSA framework finds two codecs, sometime only one (but one is correct). And most of the times the alsamixer "forgets" that the master volume also has a "mute" bit. So I have to change the bit manually to hear anything. - capturing is completely untested, it only compiles yet. - high system load increases the SMI polling latency. So some sound periods gets repeated.
Comments are welcome (and recommendations how to solve the increasing SMI polling latency under heavy system load). Attached a quilt stack for a 2.6.17 kernel.
Regards Juergen
PS: I'm on holiday next week, without email access ;-) Back Sun, 10th.