diff options
author | Robin Gong <yibin.gong@nxp.com> | 2018-09-20 18:50:58 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:34:18 +0800 |
commit | 6f3a28ffc490852653dc11ecbab13d707addcabc (patch) | |
tree | ffce76d69e80eb9e8ea2710b6e18fabcc6dd2e48 | |
parent | 46ce612ac8f6e869f0da5fed5d464480edbdd408 (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)
-rw-r--r-- | drivers/dma/imx-sdma.c | 10 |
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; |