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 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;
+}
+
 #include <sound/soc-dai.h>

 #ifdef CONFIG_DEBUG_FS




_______________________________________________
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