[alsa-devel] Stream format conversion in SoC driver

Giedrius Trainavičius giedrius.trainavicius at gmail.com
Thu Dec 29 15:32:26 CET 2016


The I2S and DMA format asymmetry sounds like what I'd be after. Do you have
any pointers for APIs / keywords to look around for in the code to see how
this should be set up? Is such format conversion supposed to be happening
in hardware itself, or the CPU when accessing the DMA buffer has the chance
to do the conversion?

The relevant documentation and code I found so far would be:

https://www.raspberrypi.org/documentation/hardware/
raspberrypi/bcm2835/BCM2835-ARM-Peripherals.pdf
https://github.com/raspberrypi/linux/blob/rpi-4.
4.y/sound/soc/bcm/bcm2835-i2s.c

I can't locate any relevant bits of code or information that'd indicate
capabilities of sample format conversion...

Thank you,
Giedrius.

On Thu, Dec 29, 2016 at 7:53 AM, Clemens Ladisch <clemens at ladisch.de> wrote:

> Giedrius Trainavičius wrote:
> >It uses I2S for sending / receiving audio. However, the master clock on
> our
> >sound card is generated by the ADC, which supports only 24 bit data, so
> >getting other sample formats is not possible.
>
> The I2S sample format need not be the same as what the DMA
> controller reads/writes from/to memory.
>
> >A question on 'plug' - it accepts 'nearest' as the argument for format,
> >rate, what happens in case the slave pcm stream supports the exact same
> >format as requested by user software?
>
> The plug plugin instantiates the actual conversion plugins only
> as needed; with no conversion, it vanishes entirely.
>
>
> Regards,
> Clemens
>
>


More information about the Alsa-devel mailing list