[alsa-devel] [PATCH] ASoC: core: Better support for idle_bias_off suspend ignores
Liam Girdwood
lrg at ti.com
Tue Jan 31 17:01:39 CET 2012
On Tue, 2012-01-31 at 15:49 +0000, Mark Brown wrote:
> If an idle_bias_off device is in any state other than off then it is still
> active for some reason (typically a low power function such as accessory
> detection). This wasn't an issue when the feature was implemented as we
> always went to _ON for any active function, subsequent power improvements
> have changed things.
>
> With the modern way of doing things we should overhaul the infrastructure
> to allow devices to explicitly take references for these functions but
> that's a much more invasive change and will require driver updates to
> deploy, this will bring the framework into line with the existing driver
> set before we do that work.
>
> Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
> ---
> sound/soc/soc-core.c | 11 +++++++++++
> 1 files changed, 11 insertions(+), 0 deletions(-)
>
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index 53fd9d2..09fa8a6 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;
Acked-by: Liam Girdwood <lrg at ti.com>
More information about the Alsa-devel
mailing list