Patchwork [3.5.y.z,extended,stable] Patch "ASoC: pcm: allow backend hardware to be freed in pause state" has been added to staging queue

mail settings
Submitter Herton Ronaldo Krzesinski
Date Jan. 23, 2013, 4:40 a.m.
Message ID <>
Download mbox | patch
Permalink /patch/214724/
State New
Headers show


Herton Ronaldo Krzesinski - Jan. 23, 2013, 4:40 a.m.
This is a note to let you know that I have just added a patch titled

    ASoC: pcm: allow backend hardware to be freed in pause state

to the linux-3.5.y-queue branch of the 3.5.y.z extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.5.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.y.z tree, see



From 0ad31cb0127abb85e53f8305a370c4d55d6c2069 Mon Sep 17 00:00:00 2001
From: Patrick Lai <>
Date: Wed, 19 Dec 2012 19:36:02 -0800
Subject: [PATCH] ASoC: pcm: allow backend hardware to be freed in pause state

commit 08b27848da620f206a8b6d80f26184485dd7aa40 upstream.

When front-end PCM session is in paused state, back-end
PCM session will be put in paused state as well if given
front-end PCM session is the only client of given back-end.
Then, application closes front-end PCM session, DPCM
framework will not allow back-end enters HW_FREE state
so back-end will never get shutdown completely.

Signed-off-by: Patrick Lai <>
Acked-by: Liam Girdwood <>
Signed-off-by: Mark Brown <>
Signed-off-by: Herton Ronaldo Krzesinski <>
 sound/soc/soc-pcm.c |    1 +
 1 file changed, 1 insertion(+)



diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 48fd15b..6f2bad0 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -1240,6 +1240,7 @@  static int dpcm_be_dai_hw_free(struct snd_soc_pcm_runtime *fe, int stream)
 		if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_PARAMS) &&
 		    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PREPARE) &&
 		    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_FREE) &&
+		    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PAUSED) &&
 		    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP))