Re: [PATCH 07/13] ASoC: codecs: add AD24xx codec driver

Mark Brown
2024-05-21T10:49:30Z

[-- Attachment #1: Type: text/plain, Size: 1396 bytes --]

On Tue, May 21, 2024 at 06:46:21AM +0000, Alvin Šipraga wrote:
> On Fri, May 17, 2024 at 04:03:50PM GMT, Mark Brown wrote:
> > On Fri, May 17, 2024 at 02:58:05PM +0200, Alvin Šipraga wrote:

> > > +static const char *const ad24xx_codec_slot_size_text[] = {
> > > + "8 bits", "12 bits", "16 bits", "20 bits",
> > > + "24 bits", "28 bits", "32 bits",
> > > +};
> >
> > Why is this configured by the user rather than via set_tdm_slot(), and
> > how would one usefully use this at runtime?
>
> This configures the slot size of A2B data slots, not the slot size on
> the TDM interface. Typically one would expect it to be the same, so your
> question is valid. But it is not a strict requirement as far as the A2B
> bus and hardware is concerned.
>
> To give a concrete example, the TDM interface might run with a TDM slot
> size of 32 bits, but the PCM data is in reality 24 bits padded to 32
> bits. In this case, A2B bus bandwidth can be saved by configuring the
> "{Up,Down}stream Slot Size" kcontrol to "24 bits".
>
> More detailed information can be found in the manual in [1] section 3-22
> "I2S/TDM Port Programming Concepts", where an analogous example is
> given.

That still doesn't sound like something that should be configured
dynamically by the user. Based on that description it sounds like it's
just the sample size so should cope from hw_params.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]