diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/soc-dapm.c | 7 |
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 | ||