summaryrefslogtreecommitdiff
path: root/drivers/dma
diff options
context:
space:
mode:
authorRobin Gong <yibin.gong@nxp.com>2018-09-20 18:50:58 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:34:18 +0800
commit6f3a28ffc490852653dc11ecbab13d707addcabc (patch)
treeffce76d69e80eb9e8ea2710b6e18fabcc6dd2e48 /drivers/dma
parent46ce612ac8f6e869f0da5fed5d464480edbdd408 (diff)
MLK-19734-3: dmaengine: imx-sdma: change fifo offset of fifo_num
Multi-fifo scripts will change offset of fifo_num from 8 to 12 for enlarging the max watermark from 8 to 128, which could utilize more FIFO space as possible as it can. New 'watermarklevel' defined as below: ;; bit0~11: wartermark level(wml*fifo_number) ;; bit15~12: fifo number ;; bit16~19: fifo offset ;; bit27~24: sw done selector ;; bit23: sw done enabled Signed-off-by: Robin Gong <yibin.gong@nxp.com> (cherry picked from commit 786c8bd56324463cb94ce2c11a83689de0058ca0)
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/imx-sdma.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index 49fee9531a1e..7d4b7f8c595a 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -196,7 +196,7 @@
BIT(DMA_MEM_TO_DEV) | \
BIT(DMA_DEV_TO_DEV))
-#define SDMA_WATERMARK_LEVEL_FIFOS_OFF 8
+#define SDMA_WATERMARK_LEVEL_FIFOS_OFF 12
#define SDMA_WATERMARK_LEVEL_SW_DONE BIT(23)
#define SDMA_WATERMARK_LEVEL_SW_DONE_SEL_OFF 24
@@ -1163,7 +1163,7 @@ static void sdma_set_watermarklevel_for_p2p(struct sdma_channel *sdmac)
static void sdma_set_watermarklevel_for_sais(struct sdma_channel *sdmac)
{
- sdmac->watermark_level &= ~(0xFFF << SDMA_WATERMARK_LEVEL_FIFOS_OFF |
+ sdmac->watermark_level &= ~(0xFF << SDMA_WATERMARK_LEVEL_FIFOS_OFF |
SDMA_WATERMARK_LEVEL_SW_DONE |
0xf << SDMA_WATERMARK_LEVEL_SW_DONE_SEL_OFF);
@@ -1173,9 +1173,9 @@ static void sdma_set_watermarklevel_for_sais(struct sdma_channel *sdmac)
SDMA_WATERMARK_LEVEL_SW_DONE_SEL_OFF;
/* For fifo_num
- * bit 0-7 is the fifo number;
- * bit 8-11 is the fifo offset,
- * so here only need to shift left fifo_num 8 bit for watermake_level
+ * bit 12-15 is the fifo number;
+ * bit 16-19 is the fifo offset,
+ * so here only need to shift left fifo_num 12 bit for watermake_level
*/
sdmac->watermark_level |= sdmac->fifo_num<<
SDMA_WATERMARK_LEVEL_FIFOS_OFF;