From 3254b49eb60040ddb40b65f44764aa41a00a5c3d Mon Sep 17 00:00:00 2001
From: Robin Gong <yibin.gong@nxp.com>
Date: Thu, 20 Sep 2018 18:50:58 +0800
Subject: [PATCH] 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)
(cherry picked from commit 1432f247a2bcdb38a1b4b5884bf541dfd8fdfcd6)
Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com>
Signed-off-by: Srikanth Krishnakar <Srikanth_Krishnakar@mentor.com>
---
 drivers/dma/imx-sdma.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index 0f4b9a3d43f59d..da4065b661985b 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -197,7 +197,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
 
@@ -1192,7 +1192,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);
 
@@ -1202,9 +1202,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;
-- 
GitLab