Re: [PATCH 6/6] ASoC: Intel: boards: use strcmp with constant literals

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 06 Oct 2017 17:24:22 +0200,
Pierre-Louis Bossart wrote:
> 
> 
> 
> On 10/06/2017 09:28 AM, Pierre-Louis Bossart wrote:
> > On 10/6/17 6:50 AM, Andy Shevchenko wrote:
> >> On Fri, 2017-10-06 at 10:55 +0200, Takashi Iwai wrote:
> >>> On Thu, 05 Oct 2017 20:52:43 +0200,
> >>> Pierre-Louis Bossart wrote:
> >>>>
> >>>> we used strncmp in all audio machine drivers, this is not needed
> >>>> when comparing against constant literals.
> >>>> General replace of strncmp(a, b, strlen(b)) to strcmp(a,b)
> >>>>
> >>>> Suggested-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> >>>> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxx
> >>>> l.com>
> >>>> ---
> >>>>   sound/soc/intel/boards/bxt_da7219_max98357a.c   | 3 +--
> >>>>   sound/soc/intel/boards/bytcht_es8316.c          | 3 +--
> >>>>   sound/soc/intel/boards/bytcr_rt5640.c           | 6 ++----
> >>>>   sound/soc/intel/boards/bytcr_rt5651.c           | 3 +--
> >>>>   sound/soc/intel/boards/cht_bsw_max98090_ti.c    | 3 +--
> >>>>   sound/soc/intel/boards/cht_bsw_rt5645.c         | 6 ++----
> >>>>   sound/soc/intel/boards/cht_bsw_rt5672.c         | 3 +--
> >>>>   sound/soc/intel/boards/skl_nau88l25_max98357a.c | 3 +--
> >>>>   sound/soc/intel/boards/skl_nau88l25_ssm4567.c   | 3 +--
> >>>>   9 files changed, 11 insertions(+), 22 deletions(-)
> >>>
> >>> While we're at it: since all these do mostly same: wouldn't it make
> >>> more sense to create a helper to scan over the rtd_list?
> >>>
> >>> static inline snd_soc_intel_get_codec_dai(struct snd_soc_card *card,
> >>>                       const char *dai_name)
> >>> {
> >>>     struct snd_soc_pcm_runtime *rtd;
> >>>
> >>>     list_for_each_entry(rtd, &card->rtd_list, list) {
> >>>         if (!strcmp(rtd->codec_dai->name, dai_name))
> >>>             return rtd->codec_dai;
> >>>     }
> >>>
> >>>     return NULL;
> >>> }
> >>
> >> I like this!
> >>
> >>> Some drivers require to check two names, but it can call this function
> >>> twice.
> >>
> >> It looks like not hot path, so, 2 passes instead of one might be not a
> >> big deal.
> >
> > Yes, that'd be a good way to simplify further. I'll resend the
> > series, thanks for the suggestion Takashi.
> The code is not Intel-specific though, should it be moved to soc.h ? e.g.
> 
> diff --git a/include/sound/soc.h b/include/sound/soc.h
> index 11ca867033bd..68f829d32c76 100644
> --- a/include/sound/soc.h
> +++ b/include/sound/soc.h
> @@ -1736,6 +1736,19 @@ int snd_soc_register_dai(struct
> snd_soc_component *component,
>  struct snd_soc_dai *snd_soc_find_dai(
>         const struct snd_soc_dai_link_component *dlc);
> 
> +static inline snd_soc_card_get_codec_dai(struct snd_soc_card *card,
> +                                        const char *dai_name)
> +{
> +       struct snd_soc_pcm_runtime *rtd;
> +
> +       list_for_each_entry(rtd, &card->rtd_list, list) {
> +               if (!strcmp(rtd->codec_dai->name, dai_name))
> +                       return rtd->codec_dai;
> +       }
> +
> +       return NULL;
> +}

Currently only Intel drivers use this, so I guess we need no hustle to
lift up for now.  But it's an inline function, so it's basically
harmless, so I'd leave the decision to Mark.


thanks,

Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux