diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-04-13 06:27:03 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-04-13 06:59:01 -0400 |
commit | f6d655a6e6974e474a11b25052c29d10b80814b3 (patch) | |
tree | cf1366799bc44d41775d5cc946a39af60d4dafc8 /sound/soc | |
parent | 025756eca458b4a3d5e3d76baaffb2e8e3df79db (diff) |
ASoC: Support DAPM events for DACs and ADCs
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/soc-dapm.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 713d12586705..a6d73379ab32 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c | |||
@@ -598,18 +598,22 @@ static int dapm_power_widget(struct snd_soc_codec *codec, int event, | |||
598 | if (w->id == snd_soc_dapm_adc && w->active) { | 598 | if (w->id == snd_soc_dapm_adc && w->active) { |
599 | in = is_connected_input_ep(w); | 599 | in = is_connected_input_ep(w); |
600 | dapm_clear_walk(w->codec); | 600 | dapm_clear_walk(w->codec); |
601 | w->power = (in != 0) ? 1 : 0; | 601 | power = (in != 0) ? 1 : 0; |
602 | dapm_update_bits(w); | 602 | if (power == w->power) |
603 | return 0; | 603 | return 0; |
604 | w->power = power; | ||
605 | return dapm_generic_apply_power(w); | ||
604 | } | 606 | } |
605 | 607 | ||
606 | /* active DAC */ | 608 | /* active DAC */ |
607 | if (w->id == snd_soc_dapm_dac && w->active) { | 609 | if (w->id == snd_soc_dapm_dac && w->active) { |
608 | out = is_connected_output_ep(w); | 610 | out = is_connected_output_ep(w); |
609 | dapm_clear_walk(w->codec); | 611 | dapm_clear_walk(w->codec); |
610 | w->power = (out != 0) ? 1 : 0; | 612 | power = (out != 0) ? 1 : 0; |
611 | dapm_update_bits(w); | 613 | if (power == w->power) |
612 | return 0; | 614 | return 0; |
615 | w->power = power; | ||
616 | return dapm_generic_apply_power(w); | ||
613 | } | 617 | } |
614 | 618 | ||
615 | /* pre and post event widgets */ | 619 | /* pre and post event widgets */ |