[alsa-devel] 6-channel output and i2s

Jon Smirl jonsmirl at gmail.com
Wed Apr 29 16:37:17 CEST 2009

On Wed, Apr 29, 2009 at 10:35 AM, Jon Smirl <jonsmirl at gmail.com> wrote:
> On Wed, Apr 29, 2009 at 9:04 AM, Takashi Iwai <tiwai at suse.de> wrote:
>> At Wed, 29 Apr 2009 08:58:52 -0400,
>> Jon Smirl wrote:
>>> My hardware was has three stereo i2s lines. These three lines are all
>>> tied to the same external clock so they are synchronized. Because
>>> there are three i2s lines, each with it's own DMA queue and FIFO, I
>>> need three independent output buffers. What is the correct way to set
>>> this up in ALSA?
>> So I suppose it's three streams of 2-ch interleaved format?
> Yes
>> If so, an easier way would be to provide three substreams in a PCM,
>> and bind 6 channels with alsa-lib plugin.
> How does ALSA start the streams synchronously?

I can start the streams synchronously at the low level by waiting for
the frame clock and then enabling the three DMA channels.

>> Another possible way would be to set up channel_info to point a proper
>> offset for each channel.  But, this is less common and maybe more
>> problematic.
>> Takashi
> --
> Jon Smirl
> jonsmirl at gmail.com

Jon Smirl
jonsmirl at gmail.com

More information about the Alsa-devel mailing list