aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/fsl/imx-ssi.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2013-04-12 08:57:04 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2013-04-12 08:57:04 -0400
commit38e8c895d33b0642dc341f83cce0adde4cffbc82 (patch)
tree3657c043986d5c944f971c9685ae4a68f5a5b035 /sound/soc/fsl/imx-ssi.c
parentd66e065c5b8b64b03a9d9b8a7c5d674c7dfa2e3d (diff)
parent69b6f19622ce0aef41df884b75e3f789c64b89c0 (diff)
Merge remote-tracking branch 'asoc/topic/dma' into asoc-next
Diffstat (limited to 'sound/soc/fsl/imx-ssi.c')
-rw-r--r--sound/soc/fsl/imx-ssi.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/sound/soc/fsl/imx-ssi.c b/sound/soc/fsl/imx-ssi.c
index 4a26d88d7236..77300d163b96 100644
--- a/sound/soc/fsl/imx-ssi.c
+++ b/sound/soc/fsl/imx-ssi.c
@@ -236,7 +236,7 @@ static int imx_ssi_startup(struct snd_pcm_substream *substream,
236 struct snd_soc_dai *cpu_dai) 236 struct snd_soc_dai *cpu_dai)
237{ 237{
238 struct imx_ssi *ssi = snd_soc_dai_get_drvdata(cpu_dai); 238 struct imx_ssi *ssi = snd_soc_dai_get_drvdata(cpu_dai);
239 struct imx_pcm_dma_params *dma_data; 239 struct snd_dmaengine_dai_dma_data *dma_data;
240 240
241 /* Tx/Rx config */ 241 /* Tx/Rx config */
242 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) 242 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
@@ -369,8 +369,8 @@ static int imx_ssi_dai_probe(struct snd_soc_dai *dai)
369 369
370 snd_soc_dai_set_drvdata(dai, ssi); 370 snd_soc_dai_set_drvdata(dai, ssi);
371 371
372 val = SSI_SFCSR_TFWM0(ssi->dma_params_tx.burstsize) | 372 val = SSI_SFCSR_TFWM0(ssi->dma_params_tx.maxburst) |
373 SSI_SFCSR_RFWM0(ssi->dma_params_rx.burstsize); 373 SSI_SFCSR_RFWM0(ssi->dma_params_rx.maxburst);
374 writel(val, ssi->base + SSI_SFCSR); 374 writel(val, ssi->base + SSI_SFCSR);
375 375
376 return 0; 376 return 0;
@@ -579,19 +579,26 @@ static int imx_ssi_probe(struct platform_device *pdev)
579 579
580 writel(0x0, ssi->base + SSI_SIER); 580 writel(0x0, ssi->base + SSI_SIER);
581 581
582 ssi->dma_params_rx.dma_addr = res->start + SSI_SRX0; 582 ssi->dma_params_rx.addr = res->start + SSI_SRX0;
583 ssi->dma_params_tx.dma_addr = res->start + SSI_STX0; 583 ssi->dma_params_tx.addr = res->start + SSI_STX0;
584 584
585 ssi->dma_params_tx.burstsize = 6; 585 ssi->dma_params_tx.maxburst = 6;
586 ssi->dma_params_rx.burstsize = 4; 586 ssi->dma_params_rx.maxburst = 4;
587
588 ssi->dma_params_tx.filter_data = &ssi->filter_data_tx;
589 ssi->dma_params_rx.filter_data = &ssi->filter_data_rx;
587 590
588 res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx0"); 591 res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx0");
589 if (res) 592 if (res) {
590 ssi->dma_params_tx.dma = res->start; 593 imx_pcm_dma_params_init_data(&ssi->filter_data_tx, res->start,
594 false);
595 }
591 596
592 res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx0"); 597 res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx0");
593 if (res) 598 if (res) {
594 ssi->dma_params_rx.dma = res->start; 599 imx_pcm_dma_params_init_data(&ssi->filter_data_rx, res->start,
600 false);
601 }
595 602
596 platform_set_drvdata(pdev, ssi); 603 platform_set_drvdata(pdev, ssi);
597 604