linux/kernel/dma/Kconfig
<<
>>
Prefs
   1
   2config HAS_DMA
   3        bool
   4        depends on !NO_DMA
   5        default y
   6
   7#
   8# IOMMU drivers that can bypass the IOMMU code and optionally use the direct
   9# mapping fast path should select this option and set the dma_ops_bypass
  10# flag in struct device where applicable
  11#
  12config DMA_OPS_BYPASS
  13        bool
  14
  15config DMA_OPS
  16        bool
  17
  18config NEED_SG_DMA_LENGTH
  19        bool
  20
  21config NEED_DMA_MAP_STATE
  22        bool
  23
  24config ARCH_DMA_ADDR_T_64BIT
  25        def_bool 64BIT || PHYS_ADDR_T_64BIT
  26
  27config ARCH_HAS_DMA_COHERENCE_H
  28        bool
  29
  30config ARCH_HAS_DMA_SET_MASK
  31        bool
  32
  33#
  34# Select this option if the architecture needs special handling for
  35# DMA_ATTR_WRITE_COMBINE.  Normally the "uncached" mapping should be what
  36# people thing of when saying write combine, so very few platforms should
  37# need to enable this.
  38#
  39config ARCH_HAS_DMA_WRITE_COMBINE
  40        bool
  41
  42config HAVE_GENERIC_DMA_COHERENT
  43        bool
  44
  45config ARCH_HAS_SETUP_DMA_OPS
  46        bool
  47
  48config ARCH_HAS_SYNC_DMA_FOR_DEVICE
  49        bool
  50
  51config ARCH_HAS_SYNC_DMA_FOR_CPU
  52        bool
  53        select NEED_DMA_MAP_STATE
  54
  55config ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
  56        bool
  57
  58config ARCH_HAS_DMA_PREP_COHERENT
  59        bool
  60
  61config ARCH_HAS_FORCE_DMA_UNENCRYPTED
  62        bool
  63
  64config DMA_NONCOHERENT_CACHE_SYNC
  65        bool
  66
  67config DMA_VIRT_OPS
  68        bool
  69        depends on HAS_DMA
  70        select DMA_OPS
  71
  72config SWIOTLB
  73        bool
  74        select NEED_DMA_MAP_STATE
  75
  76#
  77# Should be selected if we can mmap non-coherent mappings to userspace.
  78# The only thing that is really required is a way to set an uncached bit
  79# in the pagetables
  80#
  81config DMA_NONCOHERENT_MMAP
  82        default y if !MMU
  83        bool
  84
  85config DMA_COHERENT_POOL
  86        select GENERIC_ALLOCATOR
  87        bool
  88
  89config DMA_REMAP
  90        bool
  91        depends on MMU
  92        select DMA_NONCOHERENT_MMAP
  93
  94config DMA_DIRECT_REMAP
  95        bool
  96        select DMA_REMAP
  97        select DMA_COHERENT_POOL
  98
  99config DMA_API_DEBUG
 100        bool "Enable debugging of DMA-API usage"
 101        select NEED_DMA_MAP_STATE
 102        help
 103          Enable this option to debug the use of the DMA API by device drivers.
 104          With this option you will be able to detect common bugs in device
 105          drivers like double-freeing of DMA mappings or freeing mappings that
 106          were never allocated.
 107
 108          This option causes a performance degradation.  Use only if you want to
 109          debug device drivers and dma interactions.
 110
 111          If unsure, say N.
 112
 113config DMA_API_DEBUG_SG
 114        bool "Debug DMA scatter-gather usage"
 115        default y
 116        depends on DMA_API_DEBUG
 117        help
 118          Perform extra checking that callers of dma_map_sg() have respected the
 119          appropriate segment length/boundary limits for the given device when
 120          preparing DMA scatterlists.
 121
 122          This is particularly likely to have been overlooked in cases where the
 123          dma_map_sg() API is used for general bulk mapping of pages rather than
 124          preparing literal scatter-gather descriptors, where there is a risk of
 125          unexpected behaviour from DMA API implementations if the scatterlist
 126          is technically out-of-spec.
 127
 128          If unsure, say N.
 129