linux-sg2042/include/linux/dma
Grygorii Strashko d702419134 dmaengine: ti: k3-udma: Add glue layer for non DMAengine users
Certain users can not use right now the DMAengine API due to missing
features in the core. Prime example is Networking.

These users can use the glue layer interface to avoid misuse of DMAengine
API and when the core gains the needed features they can be converted to
use generic API.

The most prominent features the glue layer clients are depending on:

- most PSI-L native peripheral use extra rflow ranges on a receive channel
   and depending on the peripheral's configuration packets from a single
   free descriptor ring is going to be received to different receive ring
  - it is also possible to have different free descriptor rings per rflow
    and an rflow can also support 4 additional free descriptor ring based
    on the size of the incoming packet
- out of order completion of descriptors on a channel
 - when we have several queues to handle different priority packets the
   descriptors will be completed 'out-of-order'
- the notion of prep_slave_sg is not matching with what the streaming type
   of operation is demanding for networking
- Streaming type of operation
 - Ability to fill the free descriptor ring with descriptors in
   anticipation of incoming traffic and when a packet arrives UDMAP will
   form a packet and gives it to the client driver
 - the descriptors are not backed with exact size data buffers as we don't
   know the size of the packet we will receive, but as a generic pool of
   buffers to be used by the receive channel
- NAPI type of operation (polling instead of interrupt driven transfer)
 - without this we can not sustain gigabit speeds and we need to support NAPI
 - not to limit this to networking, but other high performance operations

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Keerthy <j-keerthy@ti.com>
Link: https://lore.kernel.org/r/20191223110458.30766-12-peter.ujfalusi@ti.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-01-21 11:06:12 +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
k3-psil.h dmaengine: ti: k3 PSI-L remote endpoint configuration 2020-01-21 11:06:12 +05:30
k3-udma-glue.h dmaengine: ti: k3-udma: Add glue layer for non DMAengine users 2020-01-21 11:06:12 +05:30
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
ti-cppi5.h dmaengine: ti: Add cppi5 header for K3 NAVSS/UDMA 2020-01-21 11:06:12 +05:30
xilinx_dma.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 40 2019-05-24 17:27:12 +02:00