summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Nikula <jhnikula@gmail.com>2010-12-10 21:53:55 +0300
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-12-13 19:47:48 +0300
commit862af8adbe6b9ccb7c00c13717b1f92465f79aa2 (patch)
treef8a9077e5e14f0dbea156c0890c229821a2709e6
parenta0968628097380be52db8b4664da98fc425546a5 (diff)
downloadlinux-862af8adbe6b9ccb7c00c13717b1f92465f79aa2.tar.xz
ASoC: Fix bias power down of non-DAPM codec
Currently bias of non-DAPM codec will be powered down (standby/off) whenever there is a stream stop. This is wrong in simultaneous playback/capture since the bias is put down immediately after stopping the first stream. Fix this by using the codec->active count when figuring out the needed bias level after stream stop. Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r--sound/soc/soc-dapm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 75ed6491222d..c721502833bc 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -944,6 +944,9 @@ static int dapm_power_widgets(struct snd_soc_codec *codec, int event)
case SND_SOC_DAPM_STREAM_RESUME:
sys_power = 1;
break;
+ case SND_SOC_DAPM_STREAM_STOP:
+ sys_power = !!codec->active;
+ break;
case SND_SOC_DAPM_STREAM_SUSPEND:
sys_power = 0;
break;