|
@@ -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);
|
|
|
|