[alsa-devel] How do I use SNDRV_PCM_INFO_JOINT_DUPLEX?

Timur Tabi timur at freescale.com
Tue Dec 18 20:50:42 CET 2007

I'm working on an ASoC driver.  I have a limitation in my hardware that if I 
have an active substream, I cannot re-program the hardware registers that 
control the sample size.

This means, for example, if I'm playing 16-bit audio, and I want to start 
capture, I cannot program the sample size into the hardware.  My only choice is 
to have already programmed the capture sample size *before* I started playback.

The easiest way to implement this is to make sure that the second stream has the 
same sample size as the first.  That way, I won't need to reprogram the 
registers, because they'll already be programmed correctly.

I discovered the SNDRV_PCM_INFO_JOINT_DUPLEX option, but I can't figure out how 
to use it.  I know it needs to be set in my snd_pcm_hardware.info, but then 
what?  How do I tell ALSA that the "joint" part is just that the sample sizes 
must be the same?

Timur Tabi
Linux kernel developer at Freescale

More information about the Alsa-devel mailing list