diff options
author | Liam Girdwood <lrg@ti.com> | 2011-06-07 11:08:05 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-06-07 13:38:27 -0400 |
commit | 0168bf0d130de83cd3532b834237c6228a6158dd (patch) | |
tree | 55a6c2ef757af0c2bf4111ef2be0e806ff6fb650 /include/sound | |
parent | 552d1ef6b5a98d7b95959d5b139071e3c90cebf1 (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.h | 4 | ||||
-rw-r--r-- | include/sound/soc.h | 18 |
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 | ||
641 | struct snd_soc_platform { | 659 | struct snd_soc_platform { |