[alsa-devel] [PATCH 1/1] ALSA: compress_core: Ensure device is stopped when stream closed

Richard Fitzgerald rf at opensource.wolfsonmicro.com
Fri Apr 26 15:47:06 CEST 2013


If the stream state is running or paused when device file is
closed snd_compr_free() will send a SNDRV_PCM_TRIGGER_STOP
to the stream.

Signed-off-by: Richard Fitzgerald <rf at opensource.wolfsonmicro.com>
---
 sound/core/compress_offload.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c
index 91e6bcb..a81c5e4 100644
--- a/sound/core/compress_offload.c
+++ b/sound/core/compress_offload.c
@@ -132,6 +132,11 @@ static int snd_compr_open(struct inode *inode, struct file *f)
 static int snd_compr_free(struct inode *inode, struct file *f)
 {
 	struct snd_compr_file *data = f->private_data;
+
+	if ((data->stream.runtime->state == SNDRV_PCM_STATE_RUNNING) ||
+	    (data->stream.runtime->state == SNDRV_PCM_STATE_PAUSED))
+		data->stream.ops->trigger(&data->stream, SNDRV_PCM_TRIGGER_STOP);
+
 	data->stream.ops->free(&data->stream);
 	kfree(data->stream.runtime->buffer);
 	kfree(data->stream.runtime);
-- 
1.7.2.5



More information about the Alsa-devel mailing list