aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-dapm.c
diff options
context:
space:
mode:
authorLiam Girdwood <lrg@ti.com>2012-02-15 10:15:35 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-02-15 10:56:49 -0500
commit8078d87f9d1383331289f78ea9b96b190d2a528f (patch)
tree3d700b84fd613ed536698a6bec9ceb5a6b34d5ad /sound/soc/soc-dapm.c
parent6c120e19fa587710d80757a6e364961a017fb6c3 (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.c10
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/**