At Tue, 21 Oct 2008 17:48:56 +0800, Cai, Cliff wrote: > > > > >-----Original Message----- > >From: Takashi Iwai [mailto:tiwai@xxxxxxx] > >Sent: Tuesday, October 21, 2008 5:39 PM > >To: Cai, Cliff > >Cc: Mark Brown; Bryan Wu; alsa-devel@xxxxxxxxxxxxxxxx > >Subject: Re: [PATCH 2/3] ASoC: Blackfin: add > >multi-channel supporting in Blackfin ASoC driver and AD1980 > >codec driver > > > >At Tue, 21 Oct 2008 17:35:49 +0800, > >Cai, Cliff wrote: > >> > >> > >> > >> >-----Original Message----- > >> >From: Mark Brown [mailto:broonie@xxxxxxxxxxxxx] > >> >Sent: Tuesday, October 21, 2008 5:16 PM > >> >To: Cai, Cliff > >> >Cc: Bryan Wu; alsa-devel@xxxxxxxxxxxxxxxx > >> >Subject: Re: [PATCH 2/3] ASoC: Blackfin: add multi-channel > >supporting > >> >in Blackfin ASoC driver and AD1980 codec driver > >> > > >> >On Tue, Oct 21, 2008 at 05:08:31PM +0800, Cai, Cliff wrote: > >> > > >> >> >To be honest, I'm surprised that the multi-channel support > >> >can't only > >> >> >incur the extra memory consumpton when playing back a > >> >> >multi-channel stream - I'd have expected the hardware to work in > >> >> >the same > >> >way for a > >> >> >normal stereo stream even if multi-channel support is built in. > >> > > >> >> Yes,hardware almost works in the same way as playing a stereo > >> >> stream,except That it need to fill more data to DMA memory > >> >> manually,since we just simulate AC97 Controller using serial port. > >> > > >> >My point is that the configuration of the hardware for > >multi-channel > >> >playback only needs to be done when actually playing back > >> >multi-channel data. When playing back stereo data it should be > >> >possible to configure the hardware and do the simulation in > >the same > >> >way as when multi-channel support is not compiled in and avoid the > >> >additional costs which that incurs. > >> > > >> >As well as saving memory I'd expect configuring this at runtime to > >> >also save some power when playing back two or four channel data. > >> > > >> > >> Yes, it's an ideal way,but it's not safe to allocate > >continuous memory > >> dynamicly, Since embedded system has limited uncached DMA memory. > > > >But, CONFIG_SND_MULTICHAN_SUPPORT would change any buffer > >allocation behavior? I don't find it... > > It will change the ac97 frame size defined in bf5xx-ac97.h,the frame > size the basic unit of the DMA buffer Ah, I see. Then I find this patch OK, at least, changes for blackfin part. Basically MULTICHAN_SUPPORT will require more resources, but it still provides the same functionality as without it. BTW, are your changes to ad1980.c applicable unconditionally? For example, > --- a/sound/soc/codecs/ad1980.c > +++ b/sound/soc/codecs/ad1980.c > @@ -145,7 +145,7 @@ struct snd_soc_dai ad1980_dai = { > .playback = { > .stream_name = "Playback", > .channels_min = 2, > - .channels_max = 2, > + .channels_max = 6, This won't work if the machine side doesn't support the multi-channel. Right now, blackfin is the only one, but the codec driver should be generic. Also, the below is dangerous: > @@ -256,6 +256,9 @@ static int ad1980_soc_probe(struct platform_device *pdev) > + ac97_write(codec, AC97_EXTENDED_STATUS, 0x0000);/*power on LFE CENTER and Surround DACs*/ This will disable all other features, too. thanks, Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel