AC97 interface question
Hi,
For a while now, I have been going around asking this question, yet fellow Linux-users seem to shy away from it, which is causing me to be somewhat alarmed.
Im trying to write a library/module to allow another user-space app to access the audio codec (sound chip) using the AC 97' interface. I have looked at the Linux sound driver code (ac97.h, ac97.c and ac97_codec.c) and the Intel documentation, and I still cant figure out how the 'actual' controlling the sound chip is done. The FreeBSD book was the closest thing I got to having my questions answered. I run Slackware (10.2 and 11), Debian 3.1 sarge and FreeBSD 6.2 on my machines.
Lemme see if I can summarize my questions:
1) What is the lowest module that does the actual communication with the AC97 interface in that linux driver?
2) Whats the method used to do the communication? Device I/O thru ports, DMA, etc.?
What Im looking for really, is a general description of the process starting with being passed a pointer to the audio data buffer and ending with sending that data to the AC97 to be played.
Best
Pete
|