From f7deb45ed002ec2fd92af048c310f6e018518d88 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Tue, 31 Jan 2012 15:49:10 +0000 Subject: [PATCH] --- yaml --- r: 287321 b: refs/heads/master c: 125a25da5729740b7d1dc417a3d5549321baae17 h: refs/heads/master i: 287319: dc8aaeddbd06c19339f06b3ac9a2309a1d221564 v: v3 --- [refs] | 2 +- trunk/sound/soc/soc-core.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) 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;