diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-04-12 08:57:04 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-04-12 08:57:04 -0400 |
commit | 38e8c895d33b0642dc341f83cce0adde4cffbc82 (patch) | |
tree | 3657c043986d5c944f971c9685ae4a68f5a5b035 /sound/soc/fsl/imx-ssi.c | |
parent | d66e065c5b8b64b03a9d9b8a7c5d674c7dfa2e3d (diff) | |
parent | 69b6f19622ce0aef41df884b75e3f789c64b89c0 (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.c | 29 |
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 | ||