From: Joonyoung Shim <jy0922.shim@samsung.com>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: alsa-devel@alsa-project.org, kyungmin.park@samsung.com
Subject: Re: [PATCH] ASoC: Add power down of widget powered up for suspend
Date: Mon, 23 Nov 2009 21:48:36 +0900 [thread overview]
Message-ID: <4B0A84A4.7070300@samsung.com> (raw)
In-Reply-To: <20091123122232.GD24326@rakim.wolfsonmicro.main>
On 11/23/2009 9:22 PM, Mark Brown wrote:
> On Mon, Nov 23, 2009 at 02:45:16PM +0900, Joonyoung Shim wrote:
>> If the widget was powered up when the device enters to the suspend, it
>> remains on because the power of the widget doesn't change, but we need
>> to power down the widget on suspend.
>
> Hrm, yes - good spot, this got missed in the refactoring to make the
> bais maintinence less dependant on stream state. However...
>
>> power = w->power_check(w);
>> - if (power)
>> + if (power) {
>> sys_power = 1;
>> + if (event == SND_SOC_DAPM_STREAM_SUSPEND)
>> + power = 0;
>> + }
>
> We don't want to set sys_power here (since we want to bring the bias
> down to standby in preparatio for suspend) and we can skip the power
> check so something like the patch below ought to do the trick. Could
> you test and let me know, please?
>
OK, i missed about sys_power. I tested and below patch solves this issue
too. I think your patch is better.
Thanks.
> That said, we probably want some more flexibility here for systems which
> want to suspend with bypass paths active. They'll want to pause streams
> being directly driven by the CPU but leave any other paths active. That
> would be a new feature, though.
>
Then, is it possible that the bypass path is alive on suspend?
> diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
> index eaadb4b..0d294ef 100644
> --- a/sound/soc/soc-dapm.c
> +++ b/sound/soc/soc-dapm.c
> @@ -977,9 +977,19 @@ static int dapm_power_widgets(struct snd_soc_codec *codec, int event)
> if (!w->power_check)
> continue;
>
> - power = w->power_check(w);
> - if (power)
> - sys_power = 1;
> + /* If we're suspending then pull down all the
> + * power. */
> + switch (event) {
> + case SND_SOC_DAPM_STREAM_SUSPEND:
> + power = 0;
> + break;
> +
> + default:
> + power = w->power_check(w);
> + if (power)
> + sys_power = 1;
> + break;
> + }
>
> if (w->power == power)
> continue;
> @@ -1003,8 +1013,12 @@ static int dapm_power_widgets(struct snd_soc_codec *codec, int event)
> case SND_SOC_DAPM_STREAM_RESUME:
> sys_power = 1;
> break;
> + case SND_SOC_DAPM_STREAM_SUSPEND:
> + sys_power = 0;
> + break;
> case SND_SOC_DAPM_STREAM_NOP:
> sys_power = codec->bias_level != SND_SOC_BIAS_STANDBY;
> + break;
> default:
> break;
> }
>
prev parent reply other threads:[~2009-11-23 12:48 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-23 5:45 [PATCH] ASoC: Add power down of widget powered up for suspend Joonyoung Shim
2009-11-23 12:22 ` Mark Brown
2009-11-23 12:48 ` Joonyoung Shim [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B0A84A4.7070300@samsung.com \
--to=jy0922.shim@samsung.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=kyungmin.park@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox