aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/soc-dapm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 6cac04595ccd..2bde6b0c038b 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -1319,13 +1319,16 @@ static int dapm_power_widgets(struct snd_soc_dapm_context *dapm, int event)
1319 } 1319 }
1320 } 1320 }
1321 1321
1322 /* Force all contexts in the card to the same bias state */ 1322 /* Force all contexts in the card to the same bias state if
1323 * they're not ground referenced.
1324 */
1323 bias = SND_SOC_BIAS_OFF; 1325 bias = SND_SOC_BIAS_OFF;
1324 list_for_each_entry(d, &card->dapm_list, list) 1326 list_for_each_entry(d, &card->dapm_list, list)
1325 if (d->target_bias_level > bias) 1327 if (d->target_bias_level > bias)
1326 bias = d->target_bias_level; 1328 bias = d->target_bias_level;
1327 list_for_each_entry(d, &card->dapm_list, list) 1329 list_for_each_entry(d, &card->dapm_list, list)
1328 d->target_bias_level = bias; 1330 if (!d->idle_bias_off)
1331 d->target_bias_level = bias;
1329 1332
1330 trace_snd_soc_dapm_walk_done(card); 1333 trace_snd_soc_dapm_walk_done(card);
1331 1334