[alsa-devel] How to support mutiple audio interface in alsa
Hello there,
This question is for ALSA, not ALSA SOC. I am doing an ALSA driver for our chip (soc chip with cpu inside), inside it has I2S and DAC. The I2S can be feed to DAC, or come out of the chip to an external CODEC chip. I wonder how should I model this in the driver, are they multiple ALSA cards, or devices, or subdevices? Since the I2S is shared, I think the most appropriate is 'subdevice', but I do not see how this is used in linux/sound, this is only used in pci, and seems to tied together with substream number. If the answer is 'device', is there some existing driver that are doing this?
Thanks, Feng
At Wed, 9 Sep 2009 11:50:34 -0700, Feng Ye wrote:
Hello there,
This question is for ALSA, not ALSA SOC. I am doing an ALSA driver for our chip (soc chip with cpu inside), inside it has I2S and DAC. The I2S can be feed to DAC, or come out of the chip to an external CODEC chip. I wonder how should I model this in the driver, are they multiple ALSA cards, or devices, or subdevices? Since the I2S is shared, I think the most appropriate is 'subdevice', but I do not see how this is used in linux/sound, this is only used in pci, and seems to
tied together with substream number.
The substream can be specified explicitly with arguments such as hw:0,1,2, which means card#0, PCM device#1 and substream#2.
The multiple substreams are provided usually for the multiple playback devices (hardware mixing) or for multiple channel streams (separate streams for front, rear, clfe, etc).
If the answer is 'device', is there some existing driver that are doing this?
There are several drivers using multiple devices. For example, emu10k1 provides front, rear, clfe as separate PCM devices, and combine them together in alsa-lib using multi plugin.
The main difference is that the multiple substreams are supposed to be chosen automatically at multiple opens of the device. This is good for multiple playback systems with h/w mixing. If the streams should be handled rather independently, multiple PCM devices might be more appropriate. But, there isn't too big difference in the implementation difficulties.
Takashi
participants (2)
-
Feng Ye
-
Takashi Iwai