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?