[alsa-devel] Complex hw buffer with MMAP_COMPLEX?

Adrian Knoth adi at drcomp.erfurt.thur.de
Tue Oct 9 15:17:57 CEST 2012


I'm about to start working on the driver for the new RME MADI FX card
with its 194 input and 196 output channels.

I've noticed that the device has a rather uncommon hw buffer layout.
Let's stick to the input side for the sake of simplicity:

    2ch AES, interleaved
    8ch MADI 001-008, interleaved
    8ch MADI 009-015, interleaved
    8ch MADI 184-192, interleaved

On the output side, there is another stereo pair for headphones.

That is, we're dealing with 25 (or 26 for output) interleaved streams
with two or eight channels each.

How could we represent such a layout in ALSA, that is, how are we
talking to userspace? Would one create subdevices and rejoin them via
plughw? Or use MMAP_COMPLEX and then let every application deal with it
on its own? It's certainly not a problem to special-case the MADI FX in
jackd1 and jackd2, but OTOH, this would require other ALSA apps to do
the same (I'm thinking of proprietary custom code).

I wonder if we could afford to rearrange the buffers in the driver and
expose a single non-interleaved buffer to userspace.



More information about the Alsa-devel mailing list