[alsa-devel] [PATCH 2/3] ASoC: Blackfin: add multi-channel supporting in Blackfin ASoC driver and AD1980 codec driver

Bryan Wu cooloney at kernel.org
Tue Oct 21 11:55:23 CEST 2008


On Tue, Oct 21, 2008 at 5:39 PM, Takashi Iwai <tiwai at suse.de> wrote:
> At Tue, 21 Oct 2008 17:35:49 +0800,
> Cai, Cliff wrote:
>>
>>
>>
>> >-----Original Message-----
>> >From: Mark Brown [mailto:broonie at sirena.org.uk]
>> >Sent: Tuesday, October 21, 2008 5:16 PM
>> >To: Cai, Cliff
>> >Cc: Bryan Wu; alsa-devel at alsa-project.org
>> >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...
>
> Anyway, I agree with Mark.  The setup can be ideally dynamically
> changed.
>

Basically, I like Mark's idea.

But you know, it is very difficult for us to allocate big buffer in an
NOMMU machine (such as Blackfin) on the fly, So we prefer to allocate
them at the beginning. And in the embedded world, when the user want
to use multi-channel function, they will enable this option. If they
don't, they won't do that. It is very simple for both us and our
users, although it is less elegant than Mark's idea.

-Bryan


More information about the Alsa-devel mailing list