mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-28 13:34:38 +08:00
d702419134
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>
63 lines
1.7 KiB
Plaintext
63 lines
1.7 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# Texas Instruments DMA drivers
|
|
#
|
|
|
|
config TI_CPPI41
|
|
tristate "Texas Instruments CPPI 4.1 DMA support"
|
|
depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX)
|
|
select DMA_ENGINE
|
|
help
|
|
The Communications Port Programming Interface (CPPI) 4.1 DMA engine
|
|
is currently used by the USB driver on AM335x and DA8xx platforms.
|
|
|
|
config TI_EDMA
|
|
tristate "Texas Instruments EDMA support"
|
|
depends on ARCH_DAVINCI || ARCH_OMAP || ARCH_KEYSTONE || COMPILE_TEST
|
|
select DMA_ENGINE
|
|
select DMA_VIRTUAL_CHANNELS
|
|
select TI_DMA_CROSSBAR if (ARCH_OMAP || COMPILE_TEST)
|
|
default y
|
|
help
|
|
Enable support for the TI EDMA (Enhanced DMA) controller. This DMA
|
|
engine is found on TI DaVinci, AM33xx, AM43xx, DRA7xx and Keystone 2
|
|
parts.
|
|
|
|
config DMA_OMAP
|
|
tristate "Texas Instruments sDMA (omap-dma) support"
|
|
depends on ARCH_OMAP || COMPILE_TEST
|
|
select DMA_ENGINE
|
|
select DMA_VIRTUAL_CHANNELS
|
|
select TI_DMA_CROSSBAR if (SOC_DRA7XX || COMPILE_TEST)
|
|
default y
|
|
help
|
|
Enable support for the TI sDMA (System DMA or DMA4) controller. This
|
|
DMA engine is found on OMAP and DRA7xx parts.
|
|
|
|
config TI_K3_UDMA
|
|
bool "Texas Instruments UDMA support"
|
|
depends on ARCH_K3 || COMPILE_TEST
|
|
depends on TI_SCI_PROTOCOL
|
|
depends on TI_SCI_INTA_IRQCHIP
|
|
select DMA_ENGINE
|
|
select DMA_VIRTUAL_CHANNELS
|
|
select TI_K3_RINGACC
|
|
select TI_K3_PSIL
|
|
help
|
|
Enable support for the TI UDMA (Unified DMA) controller. This
|
|
DMA engine is used in AM65x and j721e.
|
|
|
|
config TI_K3_UDMA_GLUE_LAYER
|
|
bool "Texas Instruments UDMA Glue layer for non DMAengine users"
|
|
depends on ARCH_K3 || COMPILE_TEST
|
|
depends on TI_K3_UDMA
|
|
help
|
|
Say y here to support the K3 NAVSS DMA glue interface
|
|
If unsure, say N.
|
|
|
|
config TI_K3_PSIL
|
|
bool
|
|
|
|
config TI_DMA_CROSSBAR
|
|
bool
|