summaryrefslogtreecommitdiff
path: root/sound/arm/aaci.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2009-11-29 19:39:52 +0300
committerTakashi Iwai <tiwai@suse.de>2009-11-30 16:50:53 +0300
commit4acd57c3de62374fe5bb52e5cd24538190f4eab2 (patch)
treed611ef755ef4951f2308249460f805bbd1cd2dca /sound/arm/aaci.c
parent77a9d3eb774f50965106cb2937be660d093a5272 (diff)
downloadlinux-4acd57c3de62374fe5bb52e5cd24538190f4eab2.tar.xz
ALSA: AACI: fix AC97 multiple-open bug
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/arm/aaci.c')
-rw-r--r--sound/arm/aaci.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c
index 1f0f8213e2d5..1cb7c282a1fb 100644
--- a/sound/arm/aaci.c
+++ b/sound/arm/aaci.c
@@ -504,6 +504,10 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream,
int err;
aaci_pcm_hw_free(substream);
+ if (aacirun->pcm_open) {
+ snd_ac97_pcm_close(aacirun->pcm);
+ aacirun->pcm_open = 0;
+ }
err = devdma_hw_alloc(NULL, substream,
params_buffer_bytes(params));