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@linux.intel.com Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@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; +}
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