diff options
author | Liam Girdwood <lrg@ti.com> | 2012-02-15 10:15:35 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-02-15 10:56:49 -0500 |
commit | 8078d87f9d1383331289f78ea9b96b190d2a528f (patch) | |
tree | 3d700b84fd613ed536698a6bec9ceb5a6b34d5ad /sound/soc/soc-dapm.c | |
parent | 6c120e19fa587710d80757a6e364961a017fb6c3 (diff) |
ASoC: dapm: Notify stream event to all card components.
Currently when DAPM widgets are power sequenced the stream_event()
completion callback is only called for the stream_event originator
DAPM context. Other components in the card may also be interested so
make sure they are also notified of any widget power events.
Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/soc-dapm.c')
-rw-r--r-- | sound/soc/soc-dapm.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 227887e05b70..63a5614d33cb 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c | |||
@@ -1516,6 +1516,12 @@ static int dapm_power_widgets(struct snd_soc_dapm_context *dapm, int event) | |||
1516 | &async_domain); | 1516 | &async_domain); |
1517 | async_synchronize_full_domain(&async_domain); | 1517 | async_synchronize_full_domain(&async_domain); |
1518 | 1518 | ||
1519 | /* do we need to notify any clients that DAPM event is complete */ | ||
1520 | list_for_each_entry(d, &card->dapm_list, list) { | ||
1521 | if (d->stream_event) | ||
1522 | d->stream_event(d, event); | ||
1523 | } | ||
1524 | |||
1519 | pop_dbg(dapm->dev, card->pop_time, | 1525 | pop_dbg(dapm->dev, card->pop_time, |
1520 | "DAPM sequencing finished, waiting %dms\n", card->pop_time); | 1526 | "DAPM sequencing finished, waiting %dms\n", card->pop_time); |
1521 | pop_wait(card->pop_time); | 1527 | pop_wait(card->pop_time); |
@@ -2854,10 +2860,6 @@ static void soc_dapm_stream_event(struct snd_soc_dapm_context *dapm, | |||
2854 | } | 2860 | } |
2855 | 2861 | ||
2856 | dapm_power_widgets(dapm, event); | 2862 | dapm_power_widgets(dapm, event); |
2857 | |||
2858 | /* do we need to notify any clients that DAPM stream is complete */ | ||
2859 | if (dapm->stream_event) | ||
2860 | dapm->stream_event(dapm, event); | ||
2861 | } | 2863 | } |
2862 | 2864 | ||
2863 | /** | 2865 | /** |