Re: [PATCH 04/44] ASoC: codecs: adau*: use .auto_selectable_formats

Nuno Sá <[email protected]> Tue, 4 Aug 2026 09:54:28 +0100
Newsgroups org.kernel.vger.linux-sound
Message-ID <anGort4nbJekjyq0@nsa>
On Tue, Aug 04, 2026 at 12:40:49AM +0000, Kuninori Morimoto wrote:
> We can use .auto_selectable_formats. Let's adds it.
> 
> Signed-off-by: Kuninori Morimoto <[email protected]>
> ---

Acked-by: Nuno Sá <[email protected]>

>  sound/soc/codecs/adau1372.c | 12 ++++++++++++
>  sound/soc/codecs/adau1373.c | 12 ++++++++++++
>  sound/soc/codecs/adau1701.c | 11 +++++++++++
>  sound/soc/codecs/adau17x1.c | 13 +++++++++++++
>  sound/soc/codecs/adau1977.c | 13 +++++++++++++
>  sound/soc/codecs/adau7118.c | 12 ++++++++++++
>  6 files changed, 73 insertions(+)
> 
> diff --git a/sound/soc/codecs/adau1372.c b/sound/soc/codecs/adau1372.c
> index cc174ec3a1f82..0830d7d2dd7c5 100644
> --- a/sound/soc/codecs/adau1372.c
> +++ b/sound/soc/codecs/adau1372.c
> @@ -881,12 +881,24 @@ static const struct snd_soc_component_driver adau1372_driver = {
>  	.endianness = 1,
>  };
>  
> +static const u64 adau1372_selectable_formats =
> +	SND_SOC_POSSIBLE_DAIFMT_I2S	|
> +	SND_SOC_POSSIBLE_DAIFMT_LEFT_J	|
> +	SND_SOC_POSSIBLE_DAIFMT_DSP_A	|
> +	SND_SOC_POSSIBLE_DAIFMT_DSP_B	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_IF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_IF;
> +
>  static const struct snd_soc_dai_ops adau1372_dai_ops = {
>  	.set_fmt = adau1372_set_dai_fmt,
>  	.set_tdm_slot = adau1372_set_tdm_slot,
>  	.set_tristate = adau1372_set_tristate,
>  	.hw_params = adau1372_hw_params,
>  	.startup = adau1372_startup,
> +	.auto_selectable_formats = &adau1372_selectable_formats,
> +	.num_auto_selectable_formats = 1,
>  };
>  
>  #define ADAU1372_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | \
> diff --git a/sound/soc/codecs/adau1373.c b/sound/soc/codecs/adau1373.c
> index 5dd961b233ce9..aa7d3a4b9f588 100644
> --- a/sound/soc/codecs/adau1373.c
> +++ b/sound/soc/codecs/adau1373.c
> @@ -1196,10 +1196,22 @@ static int adau1373_set_dai_sysclk(struct snd_soc_dai *dai,
>  	return 0;
>  }
>  
> +static const u64 adau1373_selectable_formats =
> +	SND_SOC_POSSIBLE_DAIFMT_I2S	|
> +	SND_SOC_POSSIBLE_DAIFMT_RIGHT_J	|
> +	SND_SOC_POSSIBLE_DAIFMT_LEFT_J	|
> +	SND_SOC_POSSIBLE_DAIFMT_DSP_B	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_IF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_IF;
> +
>  static const struct snd_soc_dai_ops adau1373_dai_ops = {
>  	.hw_params	= adau1373_hw_params,
>  	.set_sysclk	= adau1373_set_dai_sysclk,
>  	.set_fmt	= adau1373_set_dai_fmt,
> +	.auto_selectable_formats	= &adau1373_selectable_formats,
> +	.num_auto_selectable_formats	= 1,
>  };
>  
>  #define ADAU1373_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | \
> diff --git a/sound/soc/codecs/adau1701.c b/sound/soc/codecs/adau1701.c
> index 329ab01b62c00..505d52c636278 100644
> --- a/sound/soc/codecs/adau1701.c
> +++ b/sound/soc/codecs/adau1701.c
> @@ -627,11 +627,22 @@ static int adau1701_startup(struct snd_pcm_substream *substream,
>  #define ADAU1701_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
>  	SNDRV_PCM_FMTBIT_S24_LE)
>  
> +static const u64 adau1701_selectable_formats =
> +	SND_SOC_POSSIBLE_DAIFMT_I2S	|
> +	SND_SOC_POSSIBLE_DAIFMT_RIGHT_J	|
> +	SND_SOC_POSSIBLE_DAIFMT_LEFT_J	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_IF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_IF;
> +
>  static const struct snd_soc_dai_ops adau1701_dai_ops = {
>  	.set_fmt	= adau1701_set_dai_fmt,
>  	.hw_params	= adau1701_hw_params,
>  	.mute_stream	= adau1701_mute_stream,
>  	.startup	= adau1701_startup,
> +	.auto_selectable_formats	= &adau1701_selectable_formats,
> +	.num_auto_selectable_formats	= 1,
>  	.no_capture_mute = 1,
>  };
>  
> diff --git a/sound/soc/codecs/adau17x1.c b/sound/soc/codecs/adau17x1.c
> index 26d7eb437ad18..45ac226b2f1bc 100644
> --- a/sound/soc/codecs/adau17x1.c
> +++ b/sound/soc/codecs/adau17x1.c
> @@ -776,6 +776,17 @@ static int adau17x1_startup(struct snd_pcm_substream *substream,
>  	return 0;
>  }
>  
> +static const u64 adau17x1_selectable_formats =
> +	SND_SOC_POSSIBLE_DAIFMT_I2S	|
> +	SND_SOC_POSSIBLE_DAIFMT_RIGHT_J	|
> +	SND_SOC_POSSIBLE_DAIFMT_LEFT_J	|
> +	SND_SOC_POSSIBLE_DAIFMT_DSP_A	|
> +	SND_SOC_POSSIBLE_DAIFMT_DSP_B	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_IF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_IF;
> +
>  const struct snd_soc_dai_ops adau17x1_dai_ops = {
>  	.hw_params	= adau17x1_hw_params,
>  	.set_sysclk	= adau17x1_set_dai_sysclk,
> @@ -783,6 +794,8 @@ const struct snd_soc_dai_ops adau17x1_dai_ops = {
>  	.set_pll	= adau17x1_set_dai_pll,
>  	.set_tdm_slot	= adau17x1_set_dai_tdm_slot,
>  	.startup	= adau17x1_startup,
> +	.auto_selectable_formats	= &adau17x1_selectable_formats,
> +	.num_auto_selectable_formats	= 1,
>  };
>  EXPORT_SYMBOL_GPL(adau17x1_dai_ops);
>  
> diff --git a/sound/soc/codecs/adau1977.c b/sound/soc/codecs/adau1977.c
> index b42f35b1a6036..b9d9853934216 100644
> --- a/sound/soc/codecs/adau1977.c
> +++ b/sound/soc/codecs/adau1977.c
> @@ -741,6 +741,17 @@ static int adau1977_set_tristate(struct snd_soc_dai *dai, int tristate)
>  		ADAU1977_SAI_OVERTEMP_DRV_HIZ, val);
>  }
>  
> +static const u64 adau1977_selectable_formats =
> +	SND_SOC_POSSIBLE_DAIFMT_I2S	|
> +	SND_SOC_POSSIBLE_DAIFMT_RIGHT_J	|
> +	SND_SOC_POSSIBLE_DAIFMT_LEFT_J	|
> +	SND_SOC_POSSIBLE_DAIFMT_DSP_A	|
> +	SND_SOC_POSSIBLE_DAIFMT_DSP_B	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_IF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_IF;
> +
>  static const struct snd_soc_dai_ops adau1977_dai_ops = {
>  	.startup	= adau1977_startup,
>  	.hw_params	= adau1977_hw_params,
> @@ -748,6 +759,8 @@ static const struct snd_soc_dai_ops adau1977_dai_ops = {
>  	.set_fmt	= adau1977_set_dai_fmt,
>  	.set_tdm_slot	= adau1977_set_tdm_slot,
>  	.set_tristate	= adau1977_set_tristate,
> +	.auto_selectable_formats	= &adau1977_selectable_formats,
> +	.num_auto_selectable_formats	= 1,
>  };
>  
>  static struct snd_soc_dai_driver adau1977_dai = {
> diff --git a/sound/soc/codecs/adau7118.c b/sound/soc/codecs/adau7118.c
> index 5ddea63a6612c..9749299bc7f2a 100644
> --- a/sound/soc/codecs/adau7118.c
> +++ b/sound/soc/codecs/adau7118.c
> @@ -418,12 +418,24 @@ static int adau7118_component_probe(struct snd_soc_component *component)
>  	return ret;
>  }
>  
> +static const u64 adau7118_selectable_formats =
> +	SND_SOC_POSSIBLE_DAIFMT_I2S	|
> +	SND_SOC_POSSIBLE_DAIFMT_RIGHT_J	|
> +	SND_SOC_POSSIBLE_DAIFMT_LEFT_J	|
> +	SND_SOC_POSSIBLE_DAIFMT_DSP_A	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_NB_IF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_NF	|
> +	SND_SOC_POSSIBLE_DAIFMT_IB_IF;
> +
>  static const struct snd_soc_dai_ops adau7118_ops = {
>  	.hw_params = adau7118_hw_params,
>  	.set_channel_map = adau7118_set_channel_map,
>  	.set_fmt = adau7118_set_fmt,
>  	.set_tdm_slot = adau7118_set_tdm_slot,
>  	.set_tristate = adau7118_set_tristate,
> +	.auto_selectable_formats = &adau7118_selectable_formats,
> +	.num_auto_selectable_formats = 1,
>  };
>  
>  static struct snd_soc_dai_driver adau7118_dai = {
> -- 
> 2.53.0
>