summaryrefslogtreecommitdiff
path: root/include/sound
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2015-12-23 00:23:32 +0000
committerMark Brown <broonie@kernel.org>2015-12-23 00:23:32 +0000
commita93202fa7b450a2783feecc571dcd0fee55c91c4 (patch)
treeb72bba3a826552606a581850771f0f6f776a1566 /include/sound
parent3b88210da3a6af69e8bc7a6237e72c6ef5a2ca45 (diff)
parent61b0088b6a5b98608ce00c18a057b1f5bcb5f8b3 (diff)
Merge remote-tracking branch 'asoc/topic/pcm-list' into asoc-next
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/soc.h25
1 files changed, 22 insertions, 3 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 6dbd24a36ef8..9ea797d48d43 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1040,6 +1040,9 @@ struct snd_soc_dai_link {
/* pmdown_time is ignored at stop */
unsigned int ignore_pmdown_time:1;
+
+ struct list_head list; /* DAI link list of the soc card */
+ struct snd_soc_dobj dobj; /* For topology */
};
struct snd_soc_codec_conf {
@@ -1104,12 +1107,20 @@ struct snd_soc_card {
struct snd_soc_dapm_context *dapm,
enum snd_soc_bias_level level);
+ int (*add_dai_link)(struct snd_soc_card *,
+ struct snd_soc_dai_link *link);
+ void (*remove_dai_link)(struct snd_soc_card *,
+ struct snd_soc_dai_link *link);
+
long pmdown_time;
/* CPU <--> Codec DAI links */
- struct snd_soc_dai_link *dai_link;
- int num_links;
- struct snd_soc_pcm_runtime *rtd;
+ struct snd_soc_dai_link *dai_link; /* predefined links only */
+ int num_links; /* predefined links only */
+ struct list_head dai_link_list; /* all links */
+ int num_dai_links;
+
+ struct list_head rtd_list;
int num_rtd;
/* optional codec specific configuration */
@@ -1204,6 +1215,9 @@ struct snd_soc_pcm_runtime {
struct dentry *debugfs_dpcm_root;
struct dentry *debugfs_dpcm_state;
#endif
+
+ unsigned int num; /* 0-based and monotonic increasing */
+ struct list_head list; /* rtd list of the soc card */
};
/* mixer control */
@@ -1647,6 +1661,11 @@ int snd_soc_of_get_dai_link_codecs(struct device *dev,
struct device_node *of_node,
struct snd_soc_dai_link *dai_link);
+int snd_soc_add_dai_link(struct snd_soc_card *card,
+ struct snd_soc_dai_link *dai_link);
+void snd_soc_remove_dai_link(struct snd_soc_card *card,
+ struct snd_soc_dai_link *dai_link);
+
#include <sound/soc-dai.h>
#ifdef CONFIG_DEBUG_FS