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 a03fe80a7a73..eb715e732106 100644 --- a/sound/arm/aaci.c +++ b/sound/arm/aaci.c | |||
@@ -501,6 +501,10 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream, | |||
501 | int err; | 501 | int err; |
502 | 502 | ||
503 | aaci_pcm_hw_free(substream); | 503 | aaci_pcm_hw_free(substream); |
504 | if (aacirun->pcm_open) { | ||
505 | snd_ac97_pcm_close(aacirun->pcm); | ||
506 | aacirun->pcm_open = 0; | ||
507 | } | ||
504 | 508 | ||
505 | err = devdma_hw_alloc(NULL, substream, | 509 | err = devdma_hw_alloc(NULL, substream, |
506 | params_buffer_bytes(params)); | 510 | params_buffer_bytes(params)); |
@@ -514,7 +518,7 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream, | |||
514 | else | 518 | else |
515 | err = snd_ac97_pcm_open(aacirun->pcm, params_rate(params), | 519 | err = snd_ac97_pcm_open(aacirun->pcm, params_rate(params), |
516 | params_channels(params), | 520 | params_channels(params), |
517 | aacirun->pcm->r[1].slots); | 521 | aacirun->pcm->r[0].slots); |
518 | 522 | ||
519 | if (err) | 523 | if (err) |
520 | goto out; | 524 | goto out; |