From 11d0eaa82bfed733a6101f963163f4f4265e1f10 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 1 Sep 2005 17:32:52 +0000 Subject: [PATCH] More fix for PM More fix for PM resume. This fix the resume with helix engine. --- alsa/pcm.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/alsa/pcm.c b/alsa/pcm.c index 93ffd50..f5ec83d 100644 --- a/alsa/pcm.c +++ b/alsa/pcm.c @@ -1096,6 +1096,12 @@ int lib_oss_pcm_ioctl(int fd, unsigned long cmd, ...) break; } state = snd_pcm_state(pcm); + if (state == SND_PCM_STATE_SUSPENDED) { + err = resume(pcm); + if (err < 0) + break; + state = snd_pcm_state(pcm); + } if (state == SND_PCM_STATE_RUNNING) { snd_pcm_delay(pcm, &delay); if (str->mmap_buffer) @@ -1129,6 +1135,12 @@ int lib_oss_pcm_ioctl(int fd, unsigned long cmd, ...) break; } state = snd_pcm_state(pcm); + if (state == SND_PCM_STATE_SUSPENDED) { + err = resume(pcm); + if (err < 0) + break; + state = snd_pcm_state(pcm); + } if (state == SND_PCM_STATE_RUNNING || state == SND_PCM_STATE_DRAINING) { snd_pcm_delay(pcm, &delay); @@ -1162,6 +1174,12 @@ int lib_oss_pcm_ioctl(int fd, unsigned long cmd, ...) break; } state = snd_pcm_state(pcm); + if (state == SND_PCM_STATE_SUSPENDED) { + err = resume(pcm); + if (err < 0) + break; + state = snd_pcm_state(pcm); + } if (state == SND_PCM_STATE_RUNNING) { snd_pcm_delay(pcm, &delay); if (str->mmap_buffer) @@ -1204,6 +1222,12 @@ int lib_oss_pcm_ioctl(int fd, unsigned long cmd, ...) break; } state = snd_pcm_state(pcm); + if (state == SND_PCM_STATE_SUSPENDED) { + err = resume(pcm); + if (err < 0) + break; + state = snd_pcm_state(pcm); + } if (state == SND_PCM_STATE_RUNNING || state == SND_PCM_STATE_DRAINING) { snd_pcm_delay(pcm, &delay); @@ -1245,6 +1269,12 @@ int lib_oss_pcm_ioctl(int fd, unsigned long cmd, ...) break; } state = snd_pcm_state(pcm); + if (state == SND_PCM_STATE_SUSPENDED) { + err = resume(pcm); + if (err < 0) + break; + state = snd_pcm_state(pcm); + } if (state == SND_PCM_STATE_RUNNING || state == SND_PCM_STATE_DRAINING) { snd_pcm_delay(pcm, &delay); -- 2.47.1