aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolin Chen <b42378@freescale.com>2013-11-13 09:55:25 -0500
committerVinod Koul <vinod.koul@intel.com>2013-12-15 22:48:48 -0500
commit1a895578d4e50577bb6aa79bd194b502f09dd768 (patch)
tree9f8ae02613713c5242f35eb975e621e5b848be3f
parentcd72b8462a2ebbf9524e726c65c2770f0bf70d22 (diff)
dma: imx-sdma: Add new dma type for ssi dual fifo script
This patch adds a new DMA_TYPE for SSI dual FIFO script, included in SDMA firmware version 2. This script would allow SSI use dual fifo mode to transimit/receive data without occasional hardware underrun/overrun. Signed-off-by: Nicolin Chen <b42378@freescale.com> Acked-by: Kumar Gala <galak@codeaurora.org> Acked-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
-rw-r--r--Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt1
-rw-r--r--drivers/dma/imx-sdma.c4
-rw-r--r--include/linux/platform_data/dma-imx.h1
3 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
index 4fa814d38321..68b83ecc3850 100644
--- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
+++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
@@ -42,6 +42,7 @@ The full ID of peripheral types can be found below.
42 19 IPU Memory 42 19 IPU Memory
43 20 ASRC 43 20 ASRC
44 21 ESAI 44 21 ESAI
45 22 SSI Dual FIFO (needs firmware ver >= 2)
45 46
46The third cell specifies the transfer priority as below. 47The third cell specifies the transfer priority as below.
47 48
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index f769c7383536..152247675feb 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -725,6 +725,10 @@ static void sdma_get_pc(struct sdma_channel *sdmac,
725 per_2_emi = sdma->script_addrs->app_2_mcu_addr; 725 per_2_emi = sdma->script_addrs->app_2_mcu_addr;
726 emi_2_per = sdma->script_addrs->mcu_2_app_addr; 726 emi_2_per = sdma->script_addrs->mcu_2_app_addr;
727 break; 727 break;
728 case IMX_DMATYPE_SSI_DUAL:
729 per_2_emi = sdma->script_addrs->ssish_2_mcu_addr;
730 emi_2_per = sdma->script_addrs->mcu_2_ssish_addr;
731 break;
728 case IMX_DMATYPE_SSI_SP: 732 case IMX_DMATYPE_SSI_SP:
729 case IMX_DMATYPE_MMC: 733 case IMX_DMATYPE_MMC:
730 case IMX_DMATYPE_SDHC: 734 case IMX_DMATYPE_SDHC:
diff --git a/include/linux/platform_data/dma-imx.h b/include/linux/platform_data/dma-imx.h
index beac6b8b6a7b..bcbc6c3c14c0 100644
--- a/include/linux/platform_data/dma-imx.h
+++ b/include/linux/platform_data/dma-imx.h
@@ -39,6 +39,7 @@ enum sdma_peripheral_type {
39 IMX_DMATYPE_IPU_MEMORY, /* IPU Memory */ 39 IMX_DMATYPE_IPU_MEMORY, /* IPU Memory */
40 IMX_DMATYPE_ASRC, /* ASRC */ 40 IMX_DMATYPE_ASRC, /* ASRC */
41 IMX_DMATYPE_ESAI, /* ESAI */ 41 IMX_DMATYPE_ESAI, /* ESAI */
42 IMX_DMATYPE_SSI_DUAL, /* SSI Dual FIFO */
42}; 43};
43 44
44enum imx_dma_prio { 45enum imx_dma_prio {