1
2config HAS_DMA
3 bool
4 depends on !NO_DMA
5 default y
6
7
8
9
10
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
35
36
37
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
78
79
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