diff options
Diffstat (limited to 'sound/arm/aaci.c')
| -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 1f0f8213e2d5..6c160a038b23 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, | |||
| 504 | int err; | 504 | int err; |
| 505 | 505 | ||
| 506 | aaci_pcm_hw_free(substream); | 506 | aaci_pcm_hw_free(substream); |
| 507 | if (aacirun->pcm_open) { | ||
| 508 | snd_ac97_pcm_close(aacirun->pcm); | ||
| 509 | aacirun->pcm_open = 0; | ||
| 510 | } | ||
| 507 | 511 | ||
| 508 | err = devdma_hw_alloc(NULL, substream, | 512 | err = devdma_hw_alloc(NULL, substream, |
| 509 | params_buffer_bytes(params)); | 513 | params_buffer_bytes(params)); |
| @@ -517,7 +521,7 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream, | |||
| 517 | else | 521 | else |
| 518 | err = snd_ac97_pcm_open(aacirun->pcm, params_rate(params), | 522 | err = snd_ac97_pcm_open(aacirun->pcm, params_rate(params), |
| 519 | params_channels(params), | 523 | params_channels(params), |
| 520 | aacirun->pcm->r[1].slots); | 524 | aacirun->pcm->r[0].slots); |
| 521 | 525 | ||
| 522 | if (err) | 526 | if (err) |
| 523 | goto out; | 527 | goto out; |
