Re: the lowest level of AC97
- From: Braunne <firas.shahin@xxxxxxxxx>
- Date: 26 Apr 2007 08:09:56 -0700
On Apr 25, 10:03 am, m...@xxxxxxxxxxxxx wrote:
Braunne <firas.sha...@xxxxxxxxx> writes:
On Apr 23, 3:45 pm, m...@xxxxxxxxxxxxx wrote:
Braunne <firas.sha...@xxxxxxxxx> writes:
Hi,
Im trying to write a library to allow other apps to access the audio
codec (sound chip) using the AC 97' interface.
I looked at the Linux sound driver code (ac97.h, ac97.c and
ac97_codec.c) and I still cant figure out how the 'actual' controlling
the sound chip is done.
Lemme see if I can summarize my questions:
1) What is the lowest module that does the actual communication with
the AC97 interface?
I don't quite understand this question.
2) Whats method used to do the communication? Device I/O thru ports,
DMA, etc...
With ICH0-F7 you talk to the chip via memory mapped I/O. Mixer
controls notwithstanding this means setting up frequency (if the chip
supports VRA) and programming DMA (scatter/gatter sort of thing) and
inutiating transfer. Then (depending on how you set the control
registers) you get interrupts when individual buffers are completed.
3) Where can I find a general description of the whole process?
http://www.intel.com/design/chipsets/manuals/298028.htm
You can also look at the various emulations of ich0-f7 which might (or
might not) be easier to understand than the Intel's specification.
--
vale
I did look at most of Intel's ICHx manuals, but that didnt help a lot.
The closest thing I found to answer my questions was the FreeBSD
handbook, which I also use.
If you want to program the actual hardware then you will have to go
after specific cards specs, ICH0-F7 being one of them and there's no
better documentation (to the best of my knowlege at least). If your
goal (i still don't quite understand what it is) is something else
than please try explaining the problem in another way.
[..snip..]
--
vale
The reason why my questions seem to be vague or confusing is the lack
of knowledge on this subject.
We have a single board computer (SBC) with a Phillips UCB1400 audio
codec. Since that chip implements the AC97 interface, I thought it
might be advantageous to utilize the interface rather than programming
the chip directly. Of course audio programming using high-level API is
out of the question, due to performance constraints, as I found out
from my previous experience with Win32 multimedia functions.
At this point, two questions arise:
1) Is it possible to access the chip directly and how?
2) Would that give me a significant performance advantage over using
the interface?
Im aware that the resulting code will be hardware-specific and rather
complex whereas the code utilizing the interface wont.
Now, if I was to use the AC97 interface, a couple of questions come to
mind:
1) Using the AC97 interface how can I access a specific internal
registers of the codec?
2) Is the AC97 code cross-platform (e.g. WinCE)?
Looking at the link you sent more closely, I realize I have much to
learn.
Thank you
.
- Follow-Ups:
- Re: the lowest level of AC97
- From: malc
- Re: the lowest level of AC97
- References:
- the lowest level of AC97
- From: Braunne
- Re: the lowest level of AC97
- From: malc
- Re: the lowest level of AC97
- From: Braunne
- Re: the lowest level of AC97
- From: malc
- the lowest level of AC97
- Prev by Date: Re: Does modinfo show inserted modules?
- Next by Date: Re: hello.c,error again
- Previous by thread: Re: the lowest level of AC97
- Next by thread: Re: the lowest level of AC97
- Index(es):
Relevant Pages
|
Loading