1
0
Fork 0
alistair23-linux/include/linux/dma
Eric Long a7e335deed dmaengine: sprd: Add wrap address support for link-list mode
The Spreadtrum Audio compress offload mode will use 2-stage DMA transfer
to save power. That means we can request 2 dma channels, one for source
channel, and another one for destination channel. Once the source channel's
transaction is done, it will trigger the destination channel's transaction
automatically by hardware signal.

In this case, the source channel will transfer data from IRAM buffer to
the DSP fifo to decoding/encoding, once IRAM buffer is empty by transferring
done, the destination channel will start to transfer data from DDR buffer
to IRAM buffer. Since the destination channel will use link-list mode to
fill the IRAM data, and IRAM buffer is allocated by 32K, and DDR buffer
is larger to 2M, that means we need lots of link-list nodes to do a cyclic
transfer, instead wasting lots of link-list memory, we can use wrap address
support to reduce link-list node number, which means when the transfer
address reaches the wrap address, the transfer address will jump to the
wrap_to address specified by wrap_to register, and only 2 link-list nodes
can do a cyclic transfer to transfer data from DDR to IRAM.

Thus this patch adds wrap address to support this case.

[Baolin Wang changes the commit message]
Signed-off-by: Eric Long <eric.long@unisoc.com>
Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Link: https://lore.kernel.org/r/85a5484bc1f3dd53ce6f92700ad8b35f30a0b096.1571812029.git.baolin.wang@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2019-11-14 16:03:35 +05:30
..
dw.h dmaengine: dw: convert to SPDX identifiers 2019-01-07 17:57:13 +05:30
edma.h dmaengine: Add Synopsys eDMA IP core driver 2019-06-10 13:10:39 +05:30
hsu.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
idma64.h dmaengine: idma64: Move driver name to the header 2019-04-26 16:55:23 +05:30
ipu-dma.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mmp-pdma.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mxs-dma.h mtd: rawnand: gpmi: Implement exec_op 2019-06-27 20:05:30 +02:00
pxa-dma.h dmaengine: pxa: make the filter function internal 2018-12-03 22:41:07 +01:00
qcom_bam_dma.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
sprd-dma.h dmaengine: sprd: Add wrap address support for link-list mode 2019-11-14 16:03:35 +05:30
xilinx_dma.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 40 2019-05-24 17:27:12 +02:00