[alsa-devel] [PATCH v2] davinci-mcasp: Add support for multichannel playback

Bedia, Vaibhav vaibhav.bedia at ti.com
Mon Mar 11 08:01:58 CET 2013

On Fri, Mar 08, 2013 at 12:59:49, Mike Looijmans wrote:
> I have 9 codecs connected, and the main problem to solve was to get the 
> system to start ALL of them instead of just one.
> I solved that by creating a "multiplex" codec, which in itself doesn't 
> do anything. It exports a mixer where you can switch on/off the codecs 
> you want to use, and it forwards all commands (_ops) to the codecs that 
> are enabled. The serializer settings are sent to the asp driver as if 
> they are TDM masks (using the bits to enable serializers instead).
> In userland you see 10 codecs, you can use each separately, or use the 
> 10th codec (the multiplexer) to use any combination of other codecs.

Interesting approach. I was thinking more on the lines of how to expose
the different serializer-codec pairs to the core. Since there's only one
DMA interface for the different serializers doing this in a generic
manner looked complicated, at least to me.

I am aware of couple of multi-channel systems that preferred the approach
that I mentioned. In one, a cascading of codecs was preferred so as to free
up the extra serializer pads for different functions at the SoC level. 
There was a custom app to split the data coming in from different channels
but since it freed up a few pads, this approach was preferred. In another,
sending SPDIF data to an HDMI transmitter was preferred, again to free up
some pads. It finally depends on what the use-case is and which system level
constraints are more important to satisfy.

It would be good if you could post the changes that made so that we can
discuss on how the approach in detail and possibly enhance the core to
handle the multi-codec scenarios that use-cases like your require.


More information about the Alsa-devel mailing list