diff options
| -rw-r--r-- | sound/soc/nuc900/nuc900-pcm.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sound/soc/nuc900/nuc900-pcm.c b/sound/soc/nuc900/nuc900-pcm.c index 2245f8b8edc1..8263f56dc665 100644 --- a/sound/soc/nuc900/nuc900-pcm.c +++ b/sound/soc/nuc900/nuc900-pcm.c | |||
| @@ -50,12 +50,12 @@ static int nuc900_dma_hw_params(struct snd_pcm_substream *substream, | |||
| 50 | unsigned long flags; | 50 | unsigned long flags; |
| 51 | int ret = 0; | 51 | int ret = 0; |
| 52 | 52 | ||
| 53 | spin_lock_irqsave(&nuc900_audio->lock, flags); | ||
| 54 | |||
| 55 | ret = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params)); | 53 | ret = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params)); |
| 56 | if (ret < 0) | 54 | if (ret < 0) |
| 57 | return ret; | 55 | return ret; |
| 58 | 56 | ||
| 57 | spin_lock_irqsave(&nuc900_audio->lock, flags); | ||
| 58 | |||
| 59 | nuc900_audio->substream = substream; | 59 | nuc900_audio->substream = substream; |
| 60 | nuc900_audio->dma_addr[substream->stream] = runtime->dma_addr; | 60 | nuc900_audio->dma_addr[substream->stream] = runtime->dma_addr; |
| 61 | nuc900_audio->buffersize[substream->stream] = | 61 | nuc900_audio->buffersize[substream->stream] = |
| @@ -169,6 +169,7 @@ static int nuc900_dma_prepare(struct snd_pcm_substream *substream) | |||
| 169 | struct snd_pcm_runtime *runtime = substream->runtime; | 169 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 170 | struct nuc900_audio *nuc900_audio = runtime->private_data; | 170 | struct nuc900_audio *nuc900_audio = runtime->private_data; |
| 171 | unsigned long flags, val; | 171 | unsigned long flags, val; |
| 172 | int ret = 0; | ||
| 172 | 173 | ||
| 173 | spin_lock_irqsave(&nuc900_audio->lock, flags); | 174 | spin_lock_irqsave(&nuc900_audio->lock, flags); |
| 174 | 175 | ||
| @@ -197,10 +198,10 @@ static int nuc900_dma_prepare(struct snd_pcm_substream *substream) | |||
| 197 | AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); | 198 | AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); |
| 198 | break; | 199 | break; |
| 199 | default: | 200 | default: |
| 200 | return -EINVAL; | 201 | ret = -EINVAL; |
| 201 | } | 202 | } |
| 202 | spin_unlock_irqrestore(&nuc900_audio->lock, flags); | 203 | spin_unlock_irqrestore(&nuc900_audio->lock, flags); |
| 203 | return 0; | 204 | return ret; |
| 204 | } | 205 | } |
| 205 | 206 | ||
| 206 | static int nuc900_dma_trigger(struct snd_pcm_substream *substream, int cmd) | 207 | static int nuc900_dma_trigger(struct snd_pcm_substream *substream, int cmd) |
