On 06/24/2016 03:16 AM, Kuninori Morimoto wrote:

+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_kzalloc(dev,
+                                   strlen(dai_link->cpu_dai_name) + 4,
+                                   GFP_KERNEL);
+               if (name)
+                       sprintf(name, "fe.%s", dai_link->cpu_dai_name);
+
+       } else if (dai_link->no_pcm && dai_link->codec_dai_name) {
+               name = devm_kzalloc(dev,
+                                   strlen(dai_link->codec_dai_name) + 4,
+                                   GFP_KERNEL);
+               if (name)
+                       sprintf(name, "be.%s", dai_link->codec_dai_name);
+       } else if (dai_link->cpu_dai_name && dai_link->codec_dai_name) {
+               name = devm_kzalloc(dev,
+                                   strlen(dai_link->cpu_dai_name)   +
+                                   strlen(dai_link->codec_dai_name) + 2,
+                                   GFP_KERNEL);
+               if (name) {
+                       sprintf(name, "%s-%s",
+                               dai_link->cpu_dai_name,
+                               dai_link->codec_dai_name);
+               }
+       }

This could be simplified by using devm_kasprintf().


Reply via email to