summaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-core.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-02-07 11:04:48 +0100
committerTakashi Iwai <tiwai@suse.de>2012-02-07 11:04:48 +0100
commitcfd0d11ef565fef718118a3bd28afd52f8381bc9 (patch)
tree6ce0b913b90757a12f9c635b5be4dcbfbfdfc663 /sound/soc/soc-core.c
parenteedec3d3854a390fc14008f265930f8c22b0373f (diff)
parent43b6cec27e1e50a1de3eff47e66e502f3fe7e66e (diff)
downloadop-kernel-dev-cfd0d11ef565fef718118a3bd28afd52f8381bc9.zip
op-kernel-dev-cfd0d11ef565fef718118a3bd28afd52f8381bc9.tar.gz
Merge tag 'asoc-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
The only particularly remarkable change here is the one for handling of the Android suspend ignore code for idle_bias_off CODECs. That one is actually a regression fix as some of the new power savings that have been introduced confused the suspend ignore code, making devices that are active for non-audio reasons look like they are idle causing them to be suspended instead of being kept active.
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r--sound/soc/soc-core.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index b5ecf6d..92cee24 100644
--- a/sound/soc/soc-core.c
+++ b/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;
OpenPOWER on IntegriCloud