lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CABBwEEh7gjMPi8dybAcd_4rTT0ZJU=zi99ahSgdzCAjMtL6zdg@mail.gmail.com>
Date: Fri, 31 Oct 2025 19:45:04 +0530
From: harikrishna <hariconscious@...il.com>
To: Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>
Cc: lgirdwood@...il.com, broonie@...nel.org, perex@...ex.cz, tiwai@...e.com, 
	shuah@...nel.org, david.hunter.linux@...il.com, linux-sound@...r.kernel.org, 
	linux-kernel@...r.kernel.org
Subject: Re: [RFC] ASoC: soc-core: proposal to remove num_auto_selectable_formats
 from snd_soc_dai_ops

On Fri, Oct 31, 2025 at 12:28 PM Kuninori Morimoto
<kuninori.morimoto.gx@...esas.com> wrote:
>
>
> Hi HariKrishna
>
> Thank you for suggestion
>
> > Iʼd like to propose a small cleanup and simplification in the
> > snd_soc_dai_ops structure by removing the
> > "num_auto_selectable_formats" parameter.
>
> Do you mean like this ?
>
>         struct snd_soc_dai_ops {
>                 ...
>                 const u64 *auto_selectable_formats;
>         -       int num_auto_selectable_formats;
>                 ...
>         };
>
> > Currently,snd_soc_dai_ops includes the "num_auto_selectable_formats"
> > field to indicate the number of entries in the "auto_selectable_formats"
> > array.However, this count can be derived programmatically using the
> > ARRAY_SIZE() macro wherever needed.
>
> If my understanding was correct, unfortunately we can't do it.
>
> We can use ARRAY_SIZE() in each driver, because we can access to raw array.
> But can't use it on ASoC framework, becase auto_selectable_formats is just
> a pointer. see how ARRAY_SIZE() is defined.
>
>         --- driver ---
>         my_formats[] = {
>                 [0] = SND_SOC_POSSIBLE_DAIFMT_xxx | SND_SOC_POSSIBLE_DAIFMT_xxx ...,
>                 [1] = SND_SOC_POSSIBLE_DAIFMT_xxx | SND_SOC_POSSIBLE_DAIFMT_xxx ...,
>         };
>
>         // We can use ARRAY_SIZE() in driver, because we know raw array.
>         my_dai_ops = {
>                 ...
>                 .auto_selectable_formats        = my_formats,
> =>              .num_auto_selectable_formats    = ARRAY_SIZE(my_formats),
>         };
>
>         --- soc-xxx.c ---
>         // it will be error, because we don't know its size
> =>      int num = ARRAY_SIZE(ops->auto_selectable_formats);
>
> Or do you mean create new macro, like this ?
>
>         #define ASOC_SELECT_FORMATS(array)\
>                 .auto_selectable_formats        = array,
>                 .num_auto_selectable_formats    = ARRAY_SIZE(array)
>
>         my_ops = {
>                 ...
>         -       .auto_selectable_formats        = my_formats,
>         -       .num_auto_selectable_formats    = ARRAY_SIZE(my_formats),
>         +       ASOC_SELECT_FORMATS(my_formats),
>         };
>
> Or am I misunderstanding your suggestion ?
>
>
> Thank you for your help !!
>
> Best regards
> ---
> Kuninori Morimoto

Hi Kuninori Morimoto,

Yes, you are right.
I have got it now.
We can use it in codec driver not in framework.
Thought of changing the type of "U64 *auto_selectable_formats" to
"U64 (*auto_selectable_formats)[]" and removing the
"num_auto_selectable_formats".
But cannot be used to get count. Apologies for this.

Thanks for the guidance.

Regards,
HariKrishna.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ