diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-01-18 11:14:44 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-01-19 08:02:32 -0500 |
commit | 474b62d6eee733abdcd36f8e3e5ce504fbb9110b (patch) | |
tree | 1b399ebd627111f806fe7a20daa9f3df87ff567a /include | |
parent | 20e4859dedfc7e7b620d1756b29f8483c5be5fcc (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.h | 3 | ||||
-rw-r--r-- | include/sound/soc.h | 3 |
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 */ |