static struct snd_soc_dai_ops null_dai_ops = {
};
-
+#define CODEC_NAME_CMP
static int soc_bind_dai_link(struct snd_soc_card *card, int num)
{
struct snd_soc_dai_link *dai_link = &card->dai_link[num];
struct snd_soc_platform *platform;
struct snd_soc_dai *codec_dai, *cpu_dai;
const char *platform_name;
-
+#ifdef CODEC_NAME_CMP
+ char *p_codec_name;
+ char *p_dai_codec_name;
+ char tmp_codec_name[50];
+ char tmp_dai_codec_name[50];
+ p_codec_name = tmp_codec_name;
+ p_dai_codec_name = tmp_dai_codec_name;
+#endif
if (rtd->complete)
return 1;
dev_dbg(card->dev, "binding %s at idx %d\n", dai_link->name, num);
/* no, then find CODEC from registered CODECs*/
list_for_each_entry(codec, &codec_list, list) {
- if (!strcmp(codec->name, dai_link->codec_name)) {
+#ifdef CODEC_NAME_CMP
+ strcpy(p_codec_name,codec->name);
+ strcpy(p_dai_codec_name,dai_link->codec_name);
+#endif
+ if (!strcmp(codec->name, dai_link->codec_name)
+#ifdef CODEC_NAME_CMP
+ || !strcmp(strsep(&p_codec_name,"."), strsep(&p_dai_codec_name,"."))
+#endif
+ ) {
rtd->codec = codec;
/* CODEC found, so find CODEC DAI from registered DAIs from this CODEC*/