From: Mark Brown <broonie@opensource.wolfsonmicro.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: alsa-devel@alsa-project.org,
Mark Brown <broonie@opensource.wolfsonmicro.com>
Subject: [PATCH 11/14] ASoC: Support DAPM events for DACs and ADCs
Date: Tue, 14 Apr 2009 13:33:10 +0100 [thread overview]
Message-ID: <1239712393-6428-12-git-send-email-broonie@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <20090414123220.GA6342@rakim.wolfsonmicro.main>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
include/sound/soc-dapm.h | 10 ++++++++++
sound/soc/soc-dapm.c | 16 ++++++++++------
2 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h
index a7def6a..fcc929d 100644
--- a/include/sound/soc-dapm.h
+++ b/include/sound/soc-dapm.h
@@ -140,9 +140,19 @@
#define SND_SOC_DAPM_DAC(wname, stname, wreg, wshift, winvert) \
{ .id = snd_soc_dapm_dac, .name = wname, .sname = stname, .reg = wreg, \
.shift = wshift, .invert = winvert}
+#define SND_SOC_DAPM_DAC_E(wname, stname, wreg, wshift, winvert, \
+ wevent, wflags) \
+{ .id = snd_soc_dapm_dac, .name = wname, .sname = stname, .reg = wreg, \
+ .shift = wshift, .invert = winvert, \
+ .event = wevent, .event_flags = wflags}
#define SND_SOC_DAPM_ADC(wname, stname, wreg, wshift, winvert) \
{ .id = snd_soc_dapm_adc, .name = wname, .sname = stname, .reg = wreg, \
.shift = wshift, .invert = winvert}
+#define SND_SOC_DAPM_ADC_E(wname, stname, wreg, wshift, winvert, \
+ wevent, wflags) \
+{ .id = snd_soc_dapm_adc, .name = wname, .sname = stname, .reg = wreg, \
+ .shift = wshift, .invert = winvert, \
+ .event = wevent, .event_flags = wflags}
/* generic register modifier widget */
#define SND_SOC_DAPM_REG(wid, wname, wreg, wshift, wmask, won_val, woff_val) \
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 713d125..a6d7337 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,
if (w->id == snd_soc_dapm_adc && w->active) {
in = is_connected_input_ep(w);
dapm_clear_walk(w->codec);
- w->power = (in != 0) ? 1 : 0;
- dapm_update_bits(w);
- return 0;
+ power = (in != 0) ? 1 : 0;
+ if (power == w->power)
+ return 0;
+ w->power = power;
+ return dapm_generic_apply_power(w);
}
/* active DAC */
if (w->id == snd_soc_dapm_dac && w->active) {
out = is_connected_output_ep(w);
dapm_clear_walk(w->codec);
- w->power = (out != 0) ? 1 : 0;
- dapm_update_bits(w);
- return 0;
+ power = (out != 0) ? 1 : 0;
+ if (power == w->power)
+ return 0;
+ w->power = power;
+ return dapm_generic_apply_power(w);
}
/* pre and post event widgets */
--
1.6.2.2
next prev parent reply other threads:[~2009-04-14 12:33 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-14 12:32 ASoC updates for 2.6.31 Mark Brown
2009-04-14 12:32 ` [PATCH 01/14] ASoC: Add driver for s6000 I2S interface Mark Brown
2009-04-14 12:33 ` [PATCH] mx31ads: Depend on all the WM8350 core dependencies for WM1133-EV1 board Mark Brown
2009-04-14 12:34 ` Mark Brown
2009-04-14 12:33 ` [PATCH 02/14] ASoC: s6105 IP camera machine specific ASoC code Mark Brown
2009-04-14 12:33 ` [PATCH 03/14] ASoC: correct s6000 I2S clock polarity Mark Brown
2009-04-14 12:33 ` [PATCH 04/14] ASoC: Display return code when failing to add a DAPM kcontrol Mark Brown
2009-04-14 12:33 ` [PATCH 05/14] ASoC: Provide core support for symmetric sample rates Mark Brown
2009-04-15 6:31 ` Peter Ujfalusi
2009-04-15 8:29 ` Mark Brown
2009-04-14 12:33 ` [PATCH 06/14] ASoC: Add WM8988 CODEC driver Mark Brown
2009-04-14 12:33 ` [PATCH 07/14] ASoC: tlv320aic23: add DSP_A format support Mark Brown
2009-04-14 12:33 ` [PATCH 08/14] ASoC: n810: replace BUG() with BUG_ON() Mark Brown
2009-04-14 12:33 ` [PATCH 09/14] ASoC: WM9713 requires symmetric rates on the voice DAI Mark Brown
2009-04-14 12:33 ` [PATCH 10/14] ASoC: Factor out application of power for generic widgets Mark Brown
2009-04-14 12:33 ` Mark Brown [this message]
2009-04-14 12:33 ` [PATCH 12/14] ASoC: Move the WM9713 voice DAC powerdown to a DAPM event Mark Brown
2009-04-14 12:33 ` [PATCH 13/14] ASoC: pxa-ssp.c fix clock/frame invert Mark Brown
2009-04-14 12:33 ` [PATCH 14/14] ASoC: Add WM8960 CODEC driver Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1239712393-6428-12-git-send-email-broonie@opensource.wolfsonmicro.com \
--to=broonie@opensource.wolfsonmicro.com \
--cc=alsa-devel@alsa-project.org \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox