[alsa-devel] [PATCH 2/3] ASoC: cs4265: Add native 32bit I2S transport

Matt Flax flatmax at flatmax.org
Wed Aug 29 02:26:47 CEST 2018



On 29/08/18 09:31, Matt Flax wrote:
>
>
> On 29/08/18 04:56, Mark Brown wrote:
>> On Mon, Aug 27, 2018 at 09:28:43AM +0100, Charles Keepax wrote:
>>
>>> Are you sure this is correct? The datasheet for the part only
>>> says it supports up to 24-bit audio and I thought the defines
>>> SNDRV_PCM_FMTBIT_S24_LE and U24 are expected to have 32-bits
>>> in the slot whilst on the bus.
>> No, they're not.  They're expected to be 32 bit in memory and 24 bit on
>> the bus.
>>
>
> If this is the case, then I would assume that 32bit formats are forced 
> through ALSA plughw.
>
> If operation is forced through plughw, then this patch is necessary to 
> allow native 32 operation on the bus. The codec drops the 8 LSBs 
> during operation as it reads/writes the 24 MSBs.
>

Just to confirm this patch is necessary to support 32 bit audio formats 
naively with the cs4265 codec. I did the following tests.

Without the codec patch, limiting to 24 and 16 bit formats :
$ aplay -v tone.48k.1s.2ch.32bit.wav
aplay: set_params:1233: Sample format non available
Available formats:
- S16_LE
- S24_LE

With the codec patch, 32 bits are allowed on the I2S bus it plays as 
expected :
$ aplay -v tone.48k.1s.2ch.32bit.wav
Playing WAVE 'tone.48k.1s.2ch.32bit.wav' : Signed 32 bit Little Endian, 
Rate 48000 Hz, Stereo



More information about the Alsa-devel mailing list