diff options
author | Nicolin Chen <b42378@freescale.com> | 2013-07-25 05:41:41 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-07-25 15:11:27 -0400 |
commit | 32bd8cd25759411d3e11351db59be05446092f80 (patch) | |
tree | 48e18a2807b2bf69714f523bf4e079ec8afe14d9 | |
parent | 72192366f4e1385fe6e44600aa5b75d0136e3d52 (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.c | 4 | ||||
-rw-r--r-- | sound/soc/fsl/imx-pcm.h | 7 | ||||
-rw-r--r-- | sound/soc/fsl/imx-ssi.c | 4 |
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 | ||
23 | static inline void | 23 | static inline void |
24 | imx_pcm_dma_params_init_data(struct imx_dma_data *dma_data, | 24 | imx_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 | ||
35 | struct imx_pcm_fiq_params { | 32 | struct 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); |