[alsa-devel] Stream format conversion in SoC driver

Giedrius Trainavičius giedrius.trainavicius at gmail.com
Mon Jan 2 20:59:19 CET 2017


Hey,

Any thoughts or pointers on what to look for in order to use different
sample format between actual I2S and DMA?

Thank you,
Giedrius.

On Thu, Dec 29, 2016 at 4:32 PM, Giedrius Trainavičius <
giedrius.trainavicius at gmail.com> wrote:

> 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/raspberry
> pi/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