#
# DMA engine configuration
#

menu "DMA Engine support"
	depends on !S390

config DMA_ENGINE
	bool "Support for DMA engines"
	---help---
          DMA engines offload bulk memory operations from the CPU to dedicated
          hardware, allowing the operations to happen asynchronously.

comment "DMA Clients"

config NET_DMA
	bool "Network: TCP receive copy offload"
	depends on DMA_ENGINE && NET
	default y
	---help---
	  This enables the use of DMA engines in the network stack to
	  offload receive copy-to-user operations, freeing CPU cycles.
	  Since this is the main user of the DMA engine, it should be enabled;
	  say Y here.

comment "DMA Devices"

config INTEL_IOATDMA
	tristate "Intel I/OAT DMA support"
	depends on DMA_ENGINE && PCI
	default m
	---help---
	  Enable support for the Intel(R) I/OAT DMA engine.

config INTEL_IOP_ADMA
        tristate "Intel IOP ADMA support"
        depends on DMA_ENGINE && (ARCH_IOP32X || ARCH_IOP33X || ARCH_IOP13XX)
	select ASYNC_CORE
        default m
        ---help---
          Enable support for the Intel(R) IOP Series RAID engines.

endmenu
