summaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-01-18 16:14:44 +0000
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-01-19 13:02:32 +0000
commit474b62d6eee733abdcd36f8e3e5ce504fbb9110b (patch)
tree1b399ebd627111f806fe7a20daa9f3df87ff567a /include/sound
parent20e4859dedfc7e7b620d1756b29f8483c5be5fcc (diff)
downloadlinux-474b62d6eee733abdcd36f8e3e5ce504fbb9110b.tar.bz2
ASoC: Provide per widget type callback when executing DAPM sequences
Many modern devices have features such as DC servos which take time to start. Currently these are handled by per-widget events but this makes it difficult to paralleise operations on multiple widgets, meaning delays can end up being needlessly serialised. By providing a callback to drivers when all widgets of a given type have been handled during a DAPM sequence the core allows drivers to start operations separately and wait for them to complete much more simply. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/soc-dapm.h3
-rw-r--r--include/sound/soc.h3
2 files changed, 6 insertions, 0 deletions
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h
index a3760c93a8a3..6c9ae237814b 100644
--- a/include/sound/soc-dapm.h
+++ b/include/sound/soc-dapm.h
@@ -500,6 +500,9 @@ struct snd_soc_dapm_context {
struct snd_soc_dapm_update *update;
+ void (*seq_notifier)(struct snd_soc_dapm_context *,
+ enum snd_soc_dapm_type);
+
struct device *dev; /* from parent - for debug */
struct snd_soc_codec *codec; /* parent codec */
struct snd_soc_card *card; /* parent card */
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 9952254974b3..d244f9013767 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -546,6 +546,9 @@ struct snd_soc_codec_driver {
/* codec bias level */
int (*set_bias_level)(struct snd_soc_codec *,
enum snd_soc_bias_level level);
+
+ void (*seq_notifier)(struct snd_soc_dapm_context *,
+ enum snd_soc_dapm_type);
};
/* SoC platform interface */