Messages in this thread | | | Date | Wed, 2 Apr 2008 10:09:16 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: [GIT PULL] ALSA post-2.6.25-rc3 fixes |
| |
Takashi, I just tried to suspend my mac mini with sound running on my box that I test Fedora 9 on, and it all suspended and resumed ok, but on resume audio didn't work.
I could restart the X session, and audio was ok, so the actual driver was ok, but some state didn't restore well.
I *think* the problem may be due to this message which happened right after the resume:
Apr 2 09:50:47 macmini pulseaudio[2296]: module-alsa-sink.c: Got POLLERR from ALSA
and I wonder what ALSA does over a suspend. Yes, it can be a pulseaudio bug too (and even if it's not a pulseaudio bug I suspect pulseaudio could work aroun this by re-initializing when it gets POLLERR), but the thing is, suspend/resume *should* generally be invisible from user space!
So the POLLERR seems wrong, and I assume it is coming from snd_pcm_playback_poll() and the runtime->status->state has been scrogged by the suspend/resume cycle.
The PCM code seems to set the state to SNDRV_PCM_STATE_SUSPENDED on suspend and resume it from suspended_state, but maybe there's some path that misses this?
This is Intel HDA audio, in case it mattes (but none of the POLLERR code seems to have anything to do with the low-level drivers).
Linus
| |