diff --git a/[refs] b/[refs] index 04689cbd1752..61d23ef33e3d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 67f97f5c3edad35c4d37a94f994c76111a177fb6 +refs/heads/master: 125a25da5729740b7d1dc417a3d5549321baae17 diff --git a/trunk/sound/soc/soc-core.c b/trunk/sound/soc/soc-core.c index b5ecf6d23214..92cee24ed2dc 100644 --- a/trunk/sound/soc/soc-core.c +++ b/trunk/sound/soc/soc-core.c @@ -567,6 +567,17 @@ int snd_soc_suspend(struct device *dev) if (!codec->suspended && codec->driver->suspend) { switch (codec->dapm.bias_level) { case SND_SOC_BIAS_STANDBY: + /* + * If the CODEC is capable of idle + * bias off then being in STANDBY + * means it's doing something, + * otherwise fall through. + */ + if (codec->dapm.idle_bias_off) { + dev_dbg(codec->dev, + "idle_bias_off CODEC on over suspend\n"); + break; + } case SND_SOC_BIAS_OFF: codec->driver->suspend(codec); codec->suspended = 1;