[alsa-devel] [PATCH 02/12 v2] ASoC: core: add snd_soc_get_dai_info() to get driver infomation
Kuninori Morimoto
kuninori.morimoto.gx at renesas.com
Mon Mar 16 05:45:05 CET 2015
From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
Sometimes sound card driver want to get cpu/codec driver information.
This patch adds snd_soc_get_dai_info() and enable it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
---
v1 -> v2
- no change
include/sound/soc.h | 3 +++
sound/soc/soc-core.c | 29 ++++++++++++++++++++++++-----
2 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 235db71..709f058 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1505,6 +1505,9 @@ unsigned int snd_soc_of_parse_daifmt(struct device_node *np,
const char *prefix,
struct device_node **bitclkmaster,
struct device_node **framemaster);
+int snd_soc_get_dai_info(struct of_phandle_args *args,
+ struct snd_soc_component **cmpnt,
+ struct snd_soc_dai_driver **dai_drv);
int snd_soc_of_get_dai_name(struct device_node *of_node,
const char **dai_name);
int snd_soc_of_get_dai_link_codecs(struct device *dev,
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 3a68f13..5b01505 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -3454,8 +3454,9 @@ unsigned int snd_soc_of_parse_daifmt(struct device_node *np,
}
EXPORT_SYMBOL_GPL(snd_soc_of_parse_daifmt);
-static int snd_soc_get_dai_name(struct of_phandle_args *args,
- const char **dai_name)
+int snd_soc_get_dai_info(struct of_phandle_args *args,
+ struct snd_soc_component **cmpnt,
+ struct snd_soc_dai_driver **dai_drv)
{
struct snd_soc_component *pos;
int ret = -EPROBE_DEFER;
@@ -3486,15 +3487,33 @@ static int snd_soc_get_dai_name(struct of_phandle_args *args,
ret = 0;
- *dai_name = pos->dai_drv[id].name;
- if (!*dai_name)
- *dai_name = pos->name;
+ *cmpnt = pos;
+ *dai_drv = pos->dai_drv + id;
break;
}
mutex_unlock(&client_mutex);
return ret;
}
+EXPORT_SYMBOL_GPL(snd_soc_get_dai_info);
+
+static int snd_soc_get_dai_name(struct of_phandle_args *args,
+ const char **dai_name)
+{
+ struct snd_soc_component *cmpnt;
+ struct snd_soc_dai_driver *dai_drv;
+ int ret;
+
+ ret = snd_soc_get_dai_info(args, &cmpnt, &dai_drv);
+ if (ret)
+ return ret;
+
+ *dai_name = dai_drv->name;
+ if (!*dai_name)
+ *dai_name = cmpnt->name;
+
+ return ret;
+}
int snd_soc_of_get_dai_name(struct device_node *of_node,
const char **dai_name)
--
1.9.1
More information about the Alsa-devel
mailing list