diff options
Diffstat (limited to 'sound/soc/s3c24xx/s3c24xx-pcm.c')
-rw-r--r-- | sound/soc/s3c24xx/s3c24xx-pcm.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/sound/soc/s3c24xx/s3c24xx-pcm.c b/sound/soc/s3c24xx/s3c24xx-pcm.c index 169ddad31575..eecfa5eba06b 100644 --- a/sound/soc/s3c24xx/s3c24xx-pcm.c +++ b/sound/soc/s3c24xx/s3c24xx-pcm.c | |||
@@ -218,24 +218,17 @@ static int s3c24xx_pcm_prepare(struct snd_pcm_substream *substream) | |||
218 | * sync to pclk, half-word transfers to the IIS-FIFO. */ | 218 | * sync to pclk, half-word transfers to the IIS-FIFO. */ |
219 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { | 219 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { |
220 | s3c2410_dma_devconfig(prtd->params->channel, | 220 | s3c2410_dma_devconfig(prtd->params->channel, |
221 | S3C2410_DMASRC_MEM, S3C2410_DISRCC_INC | | 221 | S3C2410_DMASRC_MEM, |
222 | S3C2410_DISRCC_APB, prtd->params->dma_addr); | 222 | prtd->params->dma_addr); |
223 | |||
224 | s3c2410_dma_config(prtd->params->channel, | ||
225 | prtd->params->dma_size, | ||
226 | S3C2410_DCON_SYNC_PCLK | | ||
227 | S3C2410_DCON_HANDSHAKE); | ||
228 | } else { | 223 | } else { |
229 | s3c2410_dma_config(prtd->params->channel, | ||
230 | prtd->params->dma_size, | ||
231 | S3C2410_DCON_HANDSHAKE | | ||
232 | S3C2410_DCON_SYNC_PCLK); | ||
233 | |||
234 | s3c2410_dma_devconfig(prtd->params->channel, | 224 | s3c2410_dma_devconfig(prtd->params->channel, |
235 | S3C2410_DMASRC_HW, 0x3, | 225 | S3C2410_DMASRC_HW, |
236 | prtd->params->dma_addr); | 226 | prtd->params->dma_addr); |
237 | } | 227 | } |
238 | 228 | ||
229 | s3c2410_dma_config(prtd->params->channel, | ||
230 | prtd->params->dma_size); | ||
231 | |||
239 | /* flush the DMA channel */ | 232 | /* flush the DMA channel */ |
240 | s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_FLUSH); | 233 | s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_FLUSH); |
241 | prtd->dma_loaded = 0; | 234 | prtd->dma_loaded = 0; |