[alsa-devel] Adding channels on multicodec soundcard

Steven Wawryk stevenw at acres.com.au
Fri Jan 15 06:53:17 CET 2016


Hi,

I'm trying to write an ALSA soundcard driver module for an embedded 
Zynq-based system with 4 Cirrus CS42448 codecs.  Each codec has 6 analog 
output channels and I'd like the "soundcard" to have 24 channels (6 to 
each codec).  I've been having trouble getting it to do this.  The 
hw_params for the codec, card and "I2S" IP core drivers all get the same 
parameters, including number of channels.

When I define 4 snd_soc_dai_link's, each with 1 codec, then 4 "devices" 
are set up for the card and I can access 6 channels on 1 codec (1 
"device") at a time.  When I define 1 snd_soc_dai_link with 4 codecs 
then 1 "device" is set up and I can still only access 6 channels, but it 
appears to use all 4 codecs (somehow - I haven't yet worked out the 
channel allocation).  I can't seem to get 24 channels to the card, 
splitting into 6 channels to each of the codecs.

Can anyone suggest how I should be going about this?

The linux kernel is 3.17 from PetaLinux (Xilinx).

Cheers,
Steve



More information about the Alsa-devel mailing list