aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-01-18 11:14:44 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-01-19 08:02:32 -0500
commit474b62d6eee733abdcd36f8e3e5ce504fbb9110b (patch)
tree1b399ebd627111f806fe7a20daa9f3df87ff567a /include
parent20e4859dedfc7e7b620d1756b29f8483c5be5fcc (diff)
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')
-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 {
500 500
501 struct snd_soc_dapm_update *update; 501 struct snd_soc_dapm_update *update;
502 502
503 void (*seq_notifier)(struct snd_soc_dapm_context *,
504 enum snd_soc_dapm_type);
505
503 struct device *dev; /* from parent - for debug */ 506 struct device *dev; /* from parent - for debug */
504 struct snd_soc_codec *codec; /* parent codec */ 507 struct snd_soc_codec *codec; /* parent codec */
505 struct snd_soc_card *card; /* parent card */ 508 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 {
546 /* codec bias level */ 546 /* codec bias level */
547 int (*set_bias_level)(struct snd_soc_codec *, 547 int (*set_bias_level)(struct snd_soc_codec *,
548 enum snd_soc_bias_level level); 548 enum snd_soc_bias_level level);
549
550 void (*seq_notifier)(struct snd_soc_dapm_context *,
551 enum snd_soc_dapm_type);
549}; 552};
550 553
551/* SoC platform interface */ 554/* SoC platform interface */