From 2f7c11263819ffcc9407ea4d6b2420c568c30563 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Wed, 21 Sep 2011 21:29:47 +0100 Subject: [PATCH] --- yaml --- r: 270662 b: refs/heads/master c: 85a843c50ffb3597928968250a3f552a45b1b9de h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/sound/soc/soc-dapm.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 23251e7ea246..77deed8bf9e4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8c756158343029c046ade6e7076f25f99774e72f +refs/heads/master: 85a843c50ffb3597928968250a3f552a45b1b9de diff --git a/trunk/sound/soc/soc-dapm.c b/trunk/sound/soc/soc-dapm.c index 6cac04595ccd..2bde6b0c038b 100644 --- a/trunk/sound/soc/soc-dapm.c +++ b/trunk/sound/soc/soc-dapm.c @@ -1319,13 +1319,16 @@ static int dapm_power_widgets(struct snd_soc_dapm_context *dapm, int event) } } - /* Force all contexts in the card to the same bias state */ + /* Force all contexts in the card to the same bias state if + * they're not ground referenced. + */ bias = SND_SOC_BIAS_OFF; list_for_each_entry(d, &card->dapm_list, list) if (d->target_bias_level > bias) bias = d->target_bias_level; list_for_each_entry(d, &card->dapm_list, list) - d->target_bias_level = bias; + if (!d->idle_bias_off) + d->target_bias_level = bias; trace_snd_soc_dapm_walk_done(card);