diff options
Diffstat (limited to 'sound/arm')
-rw-r--r-- | sound/arm/aaci.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c index e59372887f36..1534f3d88bce 100644 --- a/sound/arm/aaci.c +++ b/sound/arm/aaci.c | |||
@@ -503,6 +503,10 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream, | |||
503 | int err; | 503 | int err; |
504 | 504 | ||
505 | aaci_pcm_hw_free(substream); | 505 | aaci_pcm_hw_free(substream); |
506 | if (aacirun->pcm_open) { | ||
507 | snd_ac97_pcm_close(aacirun->pcm); | ||
508 | aacirun->pcm_open = 0; | ||
509 | } | ||
506 | 510 | ||
507 | err = snd_pcm_lib_malloc_pages(substream, | 511 | err = snd_pcm_lib_malloc_pages(substream, |
508 | params_buffer_bytes(params)); | 512 | params_buffer_bytes(params)); |
@@ -516,7 +520,7 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream, | |||
516 | else | 520 | else |
517 | err = snd_ac97_pcm_open(aacirun->pcm, params_rate(params), | 521 | err = snd_ac97_pcm_open(aacirun->pcm, params_rate(params), |
518 | params_channels(params), | 522 | params_channels(params), |
519 | aacirun->pcm->r[1].slots); | 523 | aacirun->pcm->r[0].slots); |
520 | 524 | ||
521 | if (err) | 525 | if (err) |
522 | goto out; | 526 | goto out; |