dmaengine: imx-sdma: Add FIFO stride support for multi FIFO script
authorShengjiu Wang <shengjiu.wang@nxp.com>
Thu, 7 Jul 2022 03:00:29 +0000 (11:00 +0800)
committerVinod Koul <vkoul@kernel.org>
Thu, 21 Jul 2022 12:58:35 +0000 (18:28 +0530)
commite0c7ea83f006ce8c3264ef8b6508a891d886ad4f
tree8d0edf8188b518cede2a4ef70eb53b5ad2f2d14d
parentd0b55afa47694f6f61b40f578ede7bde1648fe48
dmaengine: imx-sdma: Add FIFO stride support for multi FIFO script

The peripheral may have several FIFOs, but some case just select
some FIFOs from them for data transfer, which means FIFO0 and FIFO2
may be selected. So add FIFO address stride support, 0 means all FIFOs
are continuous, 1 means 1 word stride between FIFOs. All stride between
FIFOs should be same.

Another option words_per_fifo means how many audio channel data copied
to one FIFO one time, 1 means one channel per FIFO, 2 means 2 channels
per FIFO.

If 'n_fifos_src =  4' and 'words_per_fifo = 2', it means the first two
words(channels) fetch from FIFO0 and then jump to FIFO1 for next two words,
and so on after the last FIFO3 fetched, roll back to FIFO0.

Signed-off-by: Joy Zou <joy.zou@nxp.com>
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1657162829-9273-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/imx-sdma.c
include/linux/dma/imx-dma.h