[alsa-devel] [PATCH] ASoC: tlv320aic3x: Correct S24_3LE support

Takashi Iwai tiwai at suse.de
Fri Dec 13 14:41:44 CET 2013


At Fri, 13 Dec 2013 13:34:44 +0000,
Mark Brown wrote:
> 
> On Fri, Dec 13, 2013 at 03:29:33PM +0200, Peter Ujfalusi wrote:
> > On 12/13/2013 03:04 PM, Mark Brown wrote:
> 
> > > This should be adding the case for the new format rather than replacing
> > > the old one shouldn't it?  They ought to turn out the same on the AIF so
> > > the CODECs shouldn't care about the difference, ideally the core would
> > > hide the difference from them.
> 
> > Not really since the codec has only field to specify the data format. The
> > codec can not support S24_LE (S24_LE is basically S32_LE msbits==24) since we
> > can not say to the codec to ignore the 8bit over the 24 bits of real data.
> > In case of S24_3LE the I2S bus will have 24 clocks/per channel which can not
> > be used to stream S24_LE either.
> 
> No, I'd expect the wire behaviour to be identical for any 24 bit samples
> (that's certainly what most drivers are written for).  The memory layout
> differences shouldn't be visible to CODEC drivers.
> 
> Like I say we ought to be handling this stuff in the core :/

But this codec driver declares the available formats as:

#define AIC3X_FORMATS	(SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | \
			 SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S32_LE)

so the fix for inconsistency is needed anyway.


Takashi


More information about the Alsa-devel mailing list