[alsa-devel] Dealing with 'siamesed' DAC sample rates
tiwai at suse.de
Mon Sep 3 14:37:51 CEST 2007
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
> On Fri, 31 Aug 2007 13:20:29 +0200
> "Takashi Iwai" <tiwai at 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
> 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.
More information about the Alsa-devel