aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
authorLiam Girdwood <lrg@ti.com>2011-06-07 11:08:05 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-06-07 13:38:27 -0400
commit0168bf0d130de83cd3532b834237c6228a6158dd (patch)
tree55a6c2ef757af0c2bf4111ef2be0e806ff6fb650 /include/sound
parent552d1ef6b5a98d7b95959d5b139071e3c90cebf1 (diff)
ASoC: core - Allow components to probe/remove in sequence.
Some ASoC components depend on other ASoC components to provide clocks and power resources in order to probe() and vice versa for remove(). Allow components to be ordered so that components can be probed() and removed() in sequences that conform to their dependencies. Signed-off-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/soc-dai.h4
-rw-r--r--include/sound/soc.h18
2 files changed, 22 insertions, 0 deletions
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
index 1bafe95dcf41..5ad5f3a50c68 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -209,6 +209,10 @@ struct snd_soc_dai_driver {
209 struct snd_soc_pcm_stream capture; 209 struct snd_soc_pcm_stream capture;
210 struct snd_soc_pcm_stream playback; 210 struct snd_soc_pcm_stream playback;
211 unsigned int symmetric_rates:1; 211 unsigned int symmetric_rates:1;
212
213 /* probe ordering - for components with runtime dependencies */
214 int probe_order;
215 int remove_order;
212}; 216};
213 217
214/* 218/*
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 74093be65709..d5db87e82c6d 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -203,6 +203,16 @@
203 SOC_VALUE_ENUM_DOUBLE_DECL(name, xreg, xshift, xshift, xmask, xtexts, xvalues) 203 SOC_VALUE_ENUM_DOUBLE_DECL(name, xreg, xshift, xshift, xmask, xtexts, xvalues)
204 204
205/* 205/*
206 * Component probe and remove ordering levels for components with runtime
207 * dependencies.
208 */
209#define SND_SOC_COMP_ORDER_FIRST -2
210#define SND_SOC_COMP_ORDER_EARLY -1
211#define SND_SOC_COMP_ORDER_NORMAL 0
212#define SND_SOC_COMP_ORDER_LATE 1
213#define SND_SOC_COMP_ORDER_LAST 2
214
215/*
206 * Bias levels 216 * Bias levels
207 * 217 *
208 * @ON: Bias is fully on for audio playback and capture operations. 218 * @ON: Bias is fully on for audio playback and capture operations.
@@ -613,6 +623,10 @@ struct snd_soc_codec_driver {
613 623
614 void (*seq_notifier)(struct snd_soc_dapm_context *, 624 void (*seq_notifier)(struct snd_soc_dapm_context *,
615 enum snd_soc_dapm_type, int); 625 enum snd_soc_dapm_type, int);
626
627 /* probe ordering - for components with runtime dependencies */
628 int probe_order;
629 int remove_order;
616}; 630};
617 631
618/* SoC platform interface */ 632/* SoC platform interface */
@@ -636,6 +650,10 @@ struct snd_soc_platform_driver {
636 650
637 /* platform stream ops */ 651 /* platform stream ops */
638 struct snd_pcm_ops *ops; 652 struct snd_pcm_ops *ops;
653
654 /* probe ordering - for components with runtime dependencies */
655 int probe_order;
656 int remove_order;
639}; 657};
640 658
641struct snd_soc_platform { 659struct snd_soc_platform {