aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolin Chen <b42378@freescale.com>2013-07-25 05:41:41 -0400
committerMark Brown <broonie@linaro.org>2013-07-25 15:11:27 -0400
commit32bd8cd25759411d3e11351db59be05446092f80 (patch)
tree48e18a2807b2bf69714f523bf4e079ec8afe14d9
parent72192366f4e1385fe6e44600aa5b75d0136e3d52 (diff)
ASoC: fsl: Set sdma peripheral type directly
Let CPU DAI drivers set SDMA periperal type directly to support more dma types(SPDIF, ESAI) other than only two for SSI. This will easily allow some non-SSI drivers to use the imx-pcm-dma as well. Signed-off-by: Nicolin Chen <b42378@freescale.com> Acked-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--sound/soc/fsl/fsl_ssi.c4
-rw-r--r--sound/soc/fsl/imx-pcm.h7
-rw-r--r--sound/soc/fsl/imx-ssi.c4
3 files changed, 6 insertions, 9 deletions
diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c
index 11469fe773e2..4d78df7d7f34 100644
--- a/sound/soc/fsl/fsl_ssi.c
+++ b/sound/soc/fsl/fsl_ssi.c
@@ -775,9 +775,9 @@ static int fsl_ssi_probe(struct platform_device *pdev)
775 "fsl,spba-bus"); 775 "fsl,spba-bus");
776 776
777 imx_pcm_dma_params_init_data(&ssi_private->filter_data_tx, 777 imx_pcm_dma_params_init_data(&ssi_private->filter_data_tx,
778 dma_events[0], shared); 778 dma_events[0], shared ? IMX_DMATYPE_SSI_SP : IMX_DMATYPE_SSI);
779 imx_pcm_dma_params_init_data(&ssi_private->filter_data_rx, 779 imx_pcm_dma_params_init_data(&ssi_private->filter_data_rx,
780 dma_events[1], shared); 780 dma_events[1], shared ? IMX_DMATYPE_SSI_SP : IMX_DMATYPE_SSI);
781 } 781 }
782 782
783 /* Initialize the the device_attribute structure */ 783 /* Initialize the the device_attribute structure */
diff --git a/sound/soc/fsl/imx-pcm.h b/sound/soc/fsl/imx-pcm.h
index fd56cad43cd6..9136625a3460 100644
--- a/sound/soc/fsl/imx-pcm.h
+++ b/sound/soc/fsl/imx-pcm.h
@@ -22,14 +22,11 @@
22 22
23static inline void 23static inline void
24imx_pcm_dma_params_init_data(struct imx_dma_data *dma_data, 24imx_pcm_dma_params_init_data(struct imx_dma_data *dma_data,
25 int dma, bool shared) 25 int dma, enum sdma_peripheral_type peripheral_type)
26{ 26{
27 dma_data->dma_request = dma; 27 dma_data->dma_request = dma;
28 dma_data->priority = DMA_PRIO_HIGH; 28 dma_data->priority = DMA_PRIO_HIGH;
29 if (shared) 29 dma_data->peripheral_type = peripheral_type;
30 dma_data->peripheral_type = IMX_DMATYPE_SSI_SP;
31 else
32 dma_data->peripheral_type = IMX_DMATYPE_SSI;
33} 30}
34 31
35struct imx_pcm_fiq_params { 32struct imx_pcm_fiq_params {
diff --git a/sound/soc/fsl/imx-ssi.c b/sound/soc/fsl/imx-ssi.c
index f029e27366de..f58bcd85c07f 100644
--- a/sound/soc/fsl/imx-ssi.c
+++ b/sound/soc/fsl/imx-ssi.c
@@ -571,13 +571,13 @@ static int imx_ssi_probe(struct platform_device *pdev)
571 res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx0"); 571 res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx0");
572 if (res) { 572 if (res) {
573 imx_pcm_dma_params_init_data(&ssi->filter_data_tx, res->start, 573 imx_pcm_dma_params_init_data(&ssi->filter_data_tx, res->start,
574 false); 574 IMX_DMATYPE_SSI);
575 } 575 }
576 576
577 res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx0"); 577 res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx0");
578 if (res) { 578 if (res) {
579 imx_pcm_dma_params_init_data(&ssi->filter_data_rx, res->start, 579 imx_pcm_dma_params_init_data(&ssi->filter_data_rx, res->start,
580 false); 580 IMX_DMATYPE_SSI);
581 } 581 }
582 582
583 platform_set_drvdata(pdev, ssi); 583 platform_set_drvdata(pdev, ssi);