[alsa-devel] [PATCH 6/6] ASoC: Intel: boards: use strcmp with constant literals

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Fri Oct 6 17:24:22 CEST 2017



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 at linux.intel.com>
>>>> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.inte
>>>> 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;
+}
+
  #include <sound/soc-dai.h>

  #ifdef CONFIG_DEBUG_FS






More information about the Alsa-devel mailing list