[alsa-devel] [PATCH 1/2] alsa: compress_core: don't wake up on pause
during pause the core should maintain the status-quo on the device and pointers and not wake up. If app needs it should call DROP explcitly.
Signed-off-by: Namarta Kohli namartax.kohli@intel.com Signed-off-by: Vinod Koul vinod.koul@linux.intel.com --- sound/core/compress_offload.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c index a68aed7..375f7a0 100644 --- a/sound/core/compress_offload.c +++ b/sound/core/compress_offload.c @@ -502,10 +502,8 @@ static int snd_compr_pause(struct snd_compr_stream *stream) if (stream->runtime->state != SNDRV_PCM_STATE_RUNNING) return -EPERM; retval = stream->ops->trigger(stream, SNDRV_PCM_TRIGGER_PAUSE_PUSH); - if (!retval) { + if (!retval) stream->runtime->state = SNDRV_PCM_STATE_PAUSED; - wake_up(&stream->runtime->sleep); - } return retval; }
as the start can be called after stop again, we need to reset state
Signed-off-by: Namarta Kohli namartax.kohli@intel.com Signed-off-by: Vinod Koul vinod.koul@linux.intel.com --- sound/core/compress_offload.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c index 375f7a0..ec2118d 100644 --- a/sound/core/compress_offload.c +++ b/sound/core/compress_offload.c @@ -542,6 +542,10 @@ static int snd_compr_stop(struct snd_compr_stream *stream) if (!retval) { stream->runtime->state = SNDRV_PCM_STATE_SETUP; wake_up(&stream->runtime->sleep); + stream->runtime->hw_pointer = 0; + stream->runtime->app_pointer = 0; + stream->runtime->total_bytes_available = 0; + stream->runtime->total_bytes_transferred = 0; } return retval; }
At Tue, 12 Jun 2012 16:16:17 +0530, Vinod Koul wrote:
during pause the core should maintain the status-quo on the device and pointers and not wake up. If app needs it should call DROP explcitly.
Signed-off-by: Namarta Kohli namartax.kohli@intel.com Signed-off-by: Vinod Koul vinod.koul@linux.intel.com
Thanks, applied these now.
Takashi
sound/core/compress_offload.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c index a68aed7..375f7a0 100644 --- a/sound/core/compress_offload.c +++ b/sound/core/compress_offload.c @@ -502,10 +502,8 @@ static int snd_compr_pause(struct snd_compr_stream *stream) if (stream->runtime->state != SNDRV_PCM_STATE_RUNNING) return -EPERM; retval = stream->ops->trigger(stream, SNDRV_PCM_TRIGGER_PAUSE_PUSH);
- if (!retval) {
- if (!retval) stream->runtime->state = SNDRV_PCM_STATE_PAUSED;
wake_up(&stream->runtime->sleep);
- } return retval;
}
-- 1.7.0.4
participants (2)
-
Takashi Iwai
-
Vinod Koul