alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: "Nobin Mathew" <nobin.mathew@gmail.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: alsa-devel@alsa-project.org
Subject: Re: [ALSA] ALSA Power Management, Drivers behaving unexpectedly after suspend/resume cycle
Date: Mon, 28 May 2007 14:46:59 +0530	[thread overview]
Message-ID: <8d6898730705280216v54aeb08y9d1dbb8be7acc7a2@mail.gmail.com> (raw)
In-Reply-To: <s5hmyztnijd.wl%tiwai@suse.de>

[-- Attachment #1: Type: text/plain, Size: 2319 bytes --]

I did some more investigation into this issue.

There are two cases, in the first case it is working after resume()
and in the second case it is not working after resume

1st Case:

1) boot the system
2)Load sound modules
2)mixer setting (alsactl restore 0)
3)Do power managemnt (sleep) suspend()
4)Come out of suspend, resume()
5)
sound is coming out in this case

2nd Case:
1)boot the system
2)load sound modules
3)mixer settings (alsactl restore 0)
4)Do playback aplay -M /usr/share/sounds/alsa/Side_Right.wav
5) Let aplay to completion and kill all alsa apps if any running.
6)Do power managemnt (sleep) suspend()
7)Come out of suspend, resume()
8)Do playback aplay -M /usr/share/sounds/alsa/Side_Right.wav

in this case no sound is coming out and i am getting underrun error.


I am attaching some logs, these are the ac97 codec register values at
various stages.

Mainly look at the register 3c.












On 5/25/07, Takashi Iwai <tiwai@suse.de> wrote:
> At Fri, 25 May 2007 13:39:40 +0100,
> Liam Girdwood wrote:
> >
> > On Fri, 2007-05-25 at 17:34 +0530, Nobin Mathew wrote:
> > > Every ALSA driver is calling these for suspend
> > >
> > > snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
> > > snd_pcm_suspend_all(pcm[i]);
> > >
> > > And for resume
> > > snd_power_change_state(card, SNDRV_CTL_POWER_D0)
> > >
> > >
> > > In ALSA ASoC no driver is calling any of this, even not in soc-core.c
> > >
> > > My driver is an ASoC driver and I am also not calling these functions
> > >
> > > Will this cause any Issue?
> > >
> >
> > These should probably be called to inform the upper layers of the PM
> > state. Can you log a bug for this in ALSA bugzilla.
> >
> > Fwiw, this _shouldn't_ effect your resume. You should still see calls to
> > trigger for your DMA / AC97 to re-start transmission of PCM data.
>
> I think this does matter.  Without calling snd_pcm_suspend*(), the
> stream is assumed to be still active, thus eventually neither prepare
> nor trigger is called at resume.  If the hardware is perfectly
> resumed as it was before suspend, it may still work somehow.
>
> However, usually it's impossible to resume the hardware perfectly.
> Thus, we need one stop the stream via snd_pcm_suspend*(), and let apps
> (or OSS layer) parepare (if needed) and restart the stream again.
>
>
> Takashi
>

[-- Attachment #2: after_resume_aplay.txt --]
[-- Type: text/plain, Size: 769 bytes --]

0:00 = 6174
0:02 = 8080
0:04 = 4040
0:06 = 8080
0:08 = c880
0:0a = 6808
0:0c = 6808
0:0e = 0808
0:10 = 00fa
0:12 = 0080
0:14 = d607
0:16 = aaa0
0:18 = aaa0
0:1a = aaa0
0:1c = 00a0
0:1e = 000f
0:20 = 0f0f
0:22 = 0040
0:24 = 0000
0:26 = 000f
0:28 = 0405
0:2a = 0411
0:2c = bb80
0:2e = bb80
0:30 = 0000
0:32 = bb80
0:34 = 0000
0:36 = 4523
0:38 = 0000
0:3a = 2000
0:3c = 1bff
0:3e = fddf
0:40 = 0000
0:42 = 0000
0:44 = 0080
0:46 = 8607
0:48 = 0000
0:4a = 0000
0:4c = fffe
0:4e = ffff
0:50 = 0000
0:52 = 0000
0:54 = 09a0
0:56 = fffe
0:58 = 4000
0:5a = 0000
0:5c = 0000
0:5e = 0000
0:60 = b032
0:62 = 3e00
0:64 = 0000
0:66 = 0000
0:68 = 0060
0:6a = 0000
0:6c = 0000
0:6e = 0000
0:70 = 0000
0:72 = 0000
0:74 = 0000
0:76 = 0006
0:78 = 0001
0:7a = 0000
0:7c = 574d
0:7e = 4c13


[-- Attachment #3: after_resume_before2nd_aplay.txt --]
[-- Type: text/plain, Size: 769 bytes --]

0:00 = 6174
0:02 = 8080
0:04 = 4040
0:06 = 8080
0:08 = c880
0:0a = 6808
0:0c = 6808
0:0e = 0808
0:10 = 00fa
0:12 = 0080
0:14 = d607
0:16 = aaa0
0:18 = aaa0
0:1a = aaa0
0:1c = 00a0
0:1e = 000f
0:20 = 0f0f
0:22 = 0040
0:24 = 0000
0:26 = 000f
0:28 = 0405
0:2a = 0411
0:2c = bb80
0:2e = bb80
0:30 = 0000
0:32 = bb80
0:34 = 0000
0:36 = 4523
0:38 = 0000
0:3a = 2000
0:3c = 3bff
0:3e = fddf
0:40 = 0000
0:42 = 0000
0:44 = 0080
0:46 = 8607
0:48 = 0000
0:4a = 0000
0:4c = fffe
0:4e = ffff
0:50 = 0000
0:52 = 0000
0:54 = 09a0
0:56 = fffe
0:58 = 4000
0:5a = 0000
0:5c = 0000
0:5e = 0000
0:60 = b032
0:62 = 3e00
0:64 = 0000
0:66 = 0000
0:68 = 0060
0:6a = 0000
0:6c = 0000
0:6e = 0000
0:70 = 0000
0:72 = 0000
0:74 = 0000
0:76 = 0006
0:78 = 0001
0:7a = 0000
0:7c = 574d
0:7e = 4c13


[-- Attachment #4: before_aplay_suspend.txt --]
[-- Type: text/plain, Size: 769 bytes --]

0:00 = 6174
0:02 = 8080
0:04 = 4040
0:06 = 8080
0:08 = c880
0:0a = 6808
0:0c = 6808
0:0e = 0808
0:10 = 00fa
0:12 = 0080
0:14 = d607
0:16 = aaa0
0:18 = aaa0
0:1a = aaa0
0:1c = 00a0
0:1e = 000f
0:20 = 0f0f
0:22 = 0040
0:24 = 0000
0:26 = 000f
0:28 = 0405
0:2a = 0410
0:2c = bb80
0:2e = bb80
0:30 = 0000
0:32 = bb80
0:34 = 0000
0:36 = 4523
0:38 = 0000
0:3a = 2000
0:3c = 3afb
0:3e = fddf
0:40 = 0000
0:42 = 0000
0:44 = 0080
0:46 = 0000
0:48 = 0000
0:4a = 0000
0:4c = fffe
0:4e = ffff
0:50 = 0000
0:52 = 0000
0:54 = 09a0
0:56 = fffe
0:58 = 4000
0:5a = 0000
0:5c = 0000
0:5e = 0000
0:60 = b032
0:62 = 3e00
0:64 = 0000
0:66 = 0000
0:68 = 0060
0:6a = 0000
0:6c = 0000
0:6e = 0000
0:70 = 0000
0:72 = 0000
0:74 = 0000
0:76 = 0006
0:78 = 0001
0:7a = 0000
0:7c = 574d
0:7e = 4c13


[-- Attachment #5: before_suspend_after1st_aplay.txt --]
[-- Type: text/plain, Size: 769 bytes --]

0:00 = 6174
0:02 = 8080
0:04 = 4040
0:06 = 8080
0:08 = c880
0:0a = 6808
0:0c = 6808
0:0e = 0808
0:10 = 00fa
0:12 = 0080
0:14 = d607
0:16 = aaa0
0:18 = aaa0
0:1a = aaa0
0:1c = 00a0
0:1e = 000f
0:20 = 0f0f
0:22 = 0040
0:24 = 0000
0:26 = 000f
0:28 = 0405
0:2a = 0411
0:2c = bb80
0:2e = bb80
0:30 = 0000
0:32 = bb80
0:34 = 0000
0:36 = 4523
0:38 = 0000
0:3a = 2000
0:3c = 1afb
0:3e = fddf
0:40 = 0000
0:42 = 0000
0:44 = 0080
0:46 = 8607
0:48 = 0000
0:4a = 0000
0:4c = fffe
0:4e = ffff
0:50 = 0000
0:52 = 0000
0:54 = 09a0
0:56 = fffe
0:58 = 4000
0:5a = 0000
0:5c = 0000
0:5e = 0000
0:60 = b032
0:62 = 3e00
0:64 = 0000
0:66 = 0000
0:68 = 0060
0:6a = 0000
0:6c = 0000
0:6e = 0000
0:70 = 0000
0:72 = 0000
0:74 = 0000
0:76 = 0006
0:78 = 0001
0:7a = 0000
0:7c = 574d
0:7e = 4c13


[-- Attachment #6: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2007-05-28  9:17 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-25  5:57 [ALSA] ALSA Power Management, Drivers behaving unexpectedly after suspend/resume cycle Nobin Mathew
2007-05-25  9:09 ` Liam Girdwood
2007-05-25  9:46 ` Takashi Iwai
2007-05-25 12:04   ` Nobin Mathew
2007-05-25 12:39     ` Liam Girdwood
2007-05-25 12:54       ` Nobin Mathew
2007-05-25 13:19         ` Liam Girdwood
2007-05-25 13:23       ` Takashi Iwai
2007-05-28  9:16         ` Nobin Mathew [this message]
2007-05-28 10:15           ` Nobin Mathew
2007-05-28 12:39             ` Nobin Mathew

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=8d6898730705280216v54aeb08y9d1dbb8be7acc7a2@mail.gmail.com \
    --to=nobin.mathew@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=tiwai@suse.de \
    /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;
as well as URLs for NNTP newsgroup(s).