diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2016-07-11 19:57:14 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-07-16 08:03:01 -0400 |
commit | 1db3312e3ab1a776ae8f414640dd7c180ce38a75 (patch) | |
tree | d4d76b41550bfc4e6dee48d0b4f7291b556e9e65 | |
parent | d6a4a9a45d072e3a27ea6e5f98192d78be621a9c (diff) |
ASoC: simple-card-utils: add asoc_simple_card_set_dailink_name()
Current simple-card is creating dai_link->name / dai_link->stream_name.
These are based on CPU + Codec name, or "fe.CPU" or "be.Codec" if it
was DPCM.
This patch adds asoc_simple_card_set_dailink_name() and set dailink
name as common method.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | include/sound/simple_card_utils.h | 3 | ||||
-rw-r--r-- | sound/soc/generic/simple-card-utils.c | 23 |
2 files changed, 26 insertions, 0 deletions
diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h index 50aa7b22a94c..b88a8dcfe4ba 100644 --- a/include/sound/simple_card_utils.h +++ b/include/sound/simple_card_utils.h | |||
@@ -27,5 +27,8 @@ int asoc_simple_card_parse_daifmt(struct device *dev, | |||
27 | struct device_node *codec, | 27 | struct device_node *codec, |
28 | char *prefix, | 28 | char *prefix, |
29 | unsigned int *retfmt); | 29 | unsigned int *retfmt); |
30 | int asoc_simple_card_set_dailink_name(struct device *dev, | ||
31 | struct snd_soc_dai_link *dai_link, | ||
32 | const char *fmt, ...); | ||
30 | 33 | ||
31 | #endif /* __SIMPLE_CARD_CORE_H */ | 34 | #endif /* __SIMPLE_CARD_CORE_H */ |
diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c index 3f6b72526f71..48c73660b66a 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c | |||
@@ -52,3 +52,26 @@ int asoc_simple_card_parse_daifmt(struct device *dev, | |||
52 | return 0; | 52 | return 0; |
53 | } | 53 | } |
54 | EXPORT_SYMBOL_GPL(asoc_simple_card_parse_daifmt); | 54 | EXPORT_SYMBOL_GPL(asoc_simple_card_parse_daifmt); |
55 | |||
56 | int asoc_simple_card_set_dailink_name(struct device *dev, | ||
57 | struct snd_soc_dai_link *dai_link, | ||
58 | const char *fmt, ...) | ||
59 | { | ||
60 | va_list ap; | ||
61 | char *name = NULL; | ||
62 | int ret = -ENOMEM; | ||
63 | |||
64 | va_start(ap, fmt); | ||
65 | name = devm_kvasprintf(dev, GFP_KERNEL, fmt, ap); | ||
66 | va_end(ap); | ||
67 | |||
68 | if (name) { | ||
69 | ret = 0; | ||
70 | |||
71 | dai_link->name = name; | ||
72 | dai_link->stream_name = name; | ||
73 | } | ||
74 | |||
75 | return ret; | ||
76 | } | ||
77 | EXPORT_SYMBOL_GPL(asoc_simple_card_set_dailink_name); | ||