Message ID | 87shvv9q3q.wl%kuninori.morimoto.gx@renesas.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Hi Mark > From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> > > Current simple-card is creating dai_link->name / dai_link->stream_name. > These are based on CPU + Codec name. > It can be "fe.CPU" or "be.Codec" if it was DPCM. > This patch adds simple card common function for it. > > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> > --- (snip) > diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c > index 3f6b725..14d3a75 100644 > --- a/sound/soc/generic/simple-card-utils.c > +++ b/sound/soc/generic/simple-card-utils.c > @@ -52,3 +52,33 @@ int asoc_simple_card_parse_daifmt(struct device *dev, > return 0; > } > EXPORT_SYMBOL_GPL(asoc_simple_card_parse_daifmt); > + > +int asoc_simple_card_parse_dailink_name(struct device *dev, > + struct snd_soc_dai_link *dai_link) > +{ > + char *name = NULL; > + int ret = -ENOMEM; > + > + if (dai_link->dynamic && dai_link->cpu_dai_name) > + name = devm_kasprintf(dev, GFP_KERNEL, > + "fe.%s", dai_link->cpu_dai_name); > + > + else if (dai_link->no_pcm && dai_link->codec_dai_name) > + name = devm_kasprintf(dev, GFP_KERNEL, > + "be.%s", dai_link->codec_dai_name); > + else if (dai_link->cpu_dai_name && dai_link->codec_dai_name) > + name = devm_kasprintf(dev, GFP_KERNEL, > + "%s-%s", > + dai_link->cpu_dai_name, > + dai_link->codec_dai_name); > + > + if (name) { > + ret = 0; > + > + dai_link->name = > + dai_link->stream_name = name; > + } > + > + return ret; > +} > +EXPORT_SYMBOL_GPL(asoc_simple_card_parse_dailink_name); Please let me know if your favored style is name format should be handled on each sound card, not in utils.c I can arrange it.
On Tue, Jul 05, 2016 at 12:24:54AM +0000, Kuninori Morimoto wrote: > Please let me know if your favored style is name format should be > handled on each sound card, not in utils.c > I can arrange it. I'd definitely prefer to limit the usage of DPCM in generic code so keeping it in the card seems safer.
Hi Mark > > Please let me know if your favored style is name format should be > > handled on each sound card, not in utils.c > > I can arrange it. > > I'd definitely prefer to limit the usage of DPCM in generic code so > keeping it in the card seems safer. As you wish !! I will do it in next version.
diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h index 50aa7b2..3abe224 100644 --- a/include/sound/simple_card_utils.h +++ b/include/sound/simple_card_utils.h @@ -27,5 +27,7 @@ int asoc_simple_card_parse_daifmt(struct device *dev, struct device_node *codec, char *prefix, unsigned int *retfmt); +int asoc_simple_card_parse_dailink_name(struct device *dev, + struct snd_soc_dai_link *dai_link); #endif /* __SIMPLE_CARD_CORE_H */ diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c index 3f6b725..14d3a75 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -52,3 +52,33 @@ int asoc_simple_card_parse_daifmt(struct device *dev, return 0; } EXPORT_SYMBOL_GPL(asoc_simple_card_parse_daifmt); + +int asoc_simple_card_parse_dailink_name(struct device *dev, + struct snd_soc_dai_link *dai_link) +{ + char *name = NULL; + int ret = -ENOMEM; + + if (dai_link->dynamic && dai_link->cpu_dai_name) + name = devm_kasprintf(dev, GFP_KERNEL, + "fe.%s", dai_link->cpu_dai_name); + + else if (dai_link->no_pcm && dai_link->codec_dai_name) + name = devm_kasprintf(dev, GFP_KERNEL, + "be.%s", dai_link->codec_dai_name); + else if (dai_link->cpu_dai_name && dai_link->codec_dai_name) + name = devm_kasprintf(dev, GFP_KERNEL, + "%s-%s", + dai_link->cpu_dai_name, + dai_link->codec_dai_name); + + if (name) { + ret = 0; + + dai_link->name = + dai_link->stream_name = name; + } + + return ret; +} +EXPORT_SYMBOL_GPL(asoc_simple_card_parse_dailink_name);