At Fri, 31 Aug 2007 09:37:14 -0700, John Utz wrote:
Hi Takashi;
tnx so much for your suggestion, however, 'tis a bit more complicated methinks....
On Fri, 31 Aug 2007 13:20:29 +0200 "Takashi Iwai" tiwai@suse.de wrote:
At Thu, 30 Aug 2007 12:42:10 -0700, John Utz wrote:
It seems like the right thing to do would be to check if any other DACs are in use.
perhaps, but i dont think that there is a 'DAC IN USE' function. Are you aware of one?
Not in the ac97_codec side. Usually the rate-lock over streams is implemented in the controller side.
Ok, but in the case of the VT1618 it's implemented on the codec itself and i have no choice.
With that in mind, is the fact that it's usually done on the controller side relevant? Does this chip fact modify your thoughts?
The problem is that it's the controller who handles DMA and decides which stream to play. AC97 is just a slave, which does the DA/AD conversion. So, what you have to take care is rather the controller side.
So, by controller, do you mean the via8237 (via82xx) side?
I had pondered doing it there, but that would require the via82xx code to know something about the codec that it's controlling and that code at present seems to know nothing about the child codecs, how would i get the codec ID value back to the via82xx code in order for it to do any decision making?
VIA82xx can't control the multi-channel streams in separate DMAs, AFAIK. The multi-stream mode is for the single-codec and via82xx itself mixes the streams. Thus, it's neither for multi codecs nor multi-channel.s In the multi-channel mode, it can handle only one stream with multiple channels. So, you cannot start/stop the stream for each channel/codec separately.
Takashi